【问题标题】:Ascii value corresponding to hex十六进制对应的ASCII值
【发布时间】:2012-05-27 07:50:04
【问题描述】:

以下行不会向文件 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"))

【问题讨论】:

  • 88 十六进制 = 136 十进制。那不是 ASCII。

标签: vb.net hex ascii


【解决方案1】:

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)

【讨论】:

    猜你喜欢
    • 2011-12-09
    • 1970-01-01
    • 1970-01-01
    • 2015-08-23
    • 2012-10-02
    • 2011-08-02
    • 1970-01-01
    • 1970-01-01
    • 2016-03-05
    相关资源
    最近更新 更多