0

以下行不会向文件 ascii.txt 写入任何内容。尝试编写十六进制“88”的ascii等价物。但是没有任何内容写入文件,也没有任何内容分配给变量 ascii。

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

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

=CHAR(HEX2DEC("88"))
4

1 回答 1

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)
于 2012-05-27T07:54:01.413 回答