Ascii值对应十六进制

时间:2012-05-27 07:50:05

标签: vb.net hex ascii

以下行不会向文件写入任何内容,ascii.txt。试图编写ascii等效的十六进制“88”。但是没有任何内容写入文件,也没有任何内容被赋予变量ascii。

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

在excel或openoffice中,您可以使用以下公式获得ascii等效项。代码有什么问题?

=CHAR(HEX2DEC("88"))

1 个答案:

答案 0 :(得分:4)

ChrW不知道ASCII,它只知道Unicode代码点。

U+0088是一个控制字符,它是不可打印的(即它通常不对应于可显示的字符)。因此,文件显示为空是不足为奇的。

此外,即使ChrW使用ASCII,字符0x88 ASCII,它超出了它的范围。如果您在谈论以前的标准Windows字符集,代码页1252,您可以使用以下代码来检索字符代码的字符串表示形式:

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