扩展的ASCII问题

时间:2010-10-17 12:18:10

标签: c# vb.net unicode ascii

我阅读维基百科,但我不明白扩展的ASCII是否仍然只是ASCII,并且可以在运行我的控制台应用程序的任何计算机上使用? 另外,如果我理解正确,我只能通过在VB或C#中使用其unicode代码来编写ASCII字符。 谢谢

3 个答案:

答案 0 :(得分:3)

ASCII仅涵盖值为0-127的字符,并且在所有计算机上都是相同的。 (Well, almost,虽然这主要是字形而不是语义问题。)

扩展ASCII是各种单字节代码页的术语,它将各种字符分配给128-255范围。没有单个“扩展ASCII”字符集。

在C#和VB.NET中,所有字符串都是Unicode,因此默认情况下,无需担心这一点 - 是否可以在控制台应用程序中移动字符是使用字体的问题,而不是限制任何特定的单字节代码页。

答案 1 :(得分:3)

正如其他人所说,真正的ASCII始终是每个字节的低7位。在Unicode标准出现之前(和普遍存在),使用第八位的ASCII字符集的各种扩展被释放。 Windows世界中最常见的是Windows code page 1252

如果您希望在.NET中使用此编码,可以这样使用:

Encoding windows1252 = Encoding.GetEncoding("windows-1252");

答案 2 :(得分:1)

正如维基百科所说,ASCII只有0-127。 “扩展ASCII”是用词不当,应该避免,并且习惯于松散地表示“基于ASCII的其他字符集,它只使用单个字节”(意思不是像UTF-8那样的多字节)。有时候这个术语意味着特定字符集的128-255个代码点 - 但同样,它是模糊的,你不应指望它具有任何特定的意义。

  

该术语的使用有时会受到批评,因为可能会错误地解释ASCII标准已被更新为包含超过128个字符或该术语明确标识单个编码,这两个都是不真实的。

     

来源:http://en.wikipedia.org/wiki/Extended_ASCII