2012-05-27 2 views
0

아래 라인은 파일 ascii.txt에 아무 것도 쓰지 않습니다. 16 진수 "88"에 해당하는 ASCII 문자를 쓰려고합니다. 그러나 아무것도 파일에 기록되지 않으며, 변수 ascii에 아무 것도 할당되지 않습니다.16 진수에 해당하는 ASCII 값

Dim ascii = ChrW(Convert.ToInt32("88", 16)) 
My.Computer.FileSystem.WriteAllText("e:\ascii.txt", ascii, True) 

excel 또는 openoffice에서 다음 수식을 사용하여 ASCII 등가를 얻을 수 있습니다. 코드에 어떤 문제가 있습니까?

=CHAR(HEX2DEC("88")) 
+3

88 16 진수 = 136 그것은 ASCII가 아닙니다. –

답변

4

ChrW 그것은 유니 코드 코드 포인트를 알고, ASCII를 알 수 없습니다.

U+0088은 제어 문자이며 인쇄 할 수 없습니다 (즉, 표시 가능한 문자와 일반적으로 일치하지 않음). 따라서 파일이 비어있는 것은 놀라운 일이 아닙니다.

ChrW 심지어 ASCII로 작업 한 문자 0x88은 이 아니며 ASCII가 아니며 범위를 벗어납니다. 이전의 표준 Windows 문자 집합 인 코드 페이지 1252에 대해 이야기하고있는 경우 다음 코드를 사용하여 문자 코드의 문자열 표현을 검색 할 수 있습니다.

Dim bytes = New Byte() { &H88 } 
Dim text = System.Text.Encoding.GetEncoding(1252).GetString(bytes)