在C#中扩展的ASCII字符串
试试这个...... 将这些字符串转换为字符串。
string equivalentLetter = Encoding.Default.GetString(new byte[] { (byte)letter });
现在,等价的字母包含正确的字符串。 我试过这个欧元符号,它的工作。
.NET字符串是UTF-16编码的,而不是extended-ascii(不管是什么)。通过简单地向一个字符添加一个数字将会给你另一个在UTF-16 plain set中定义的字符。如果您想要查看扩展ASCII编码中的底层字符,则需要将新计算的字母从您正在讨论的任何编码转换为UTF-16。请参阅:http://msdn.microsoft.com/en-us/library/66sschk1.aspx
“扩展ascii”基本上是每个字符的每个字符的文本编码,其中0-127个字节的值与纯ASCII的文本具有相同的含义。 (尽管技术上UTF-8,该字节范围内每个字符1个字节,也可以看作是扩展ASCII)术语被滥用者误解/误解。 – Nyerguds
扩展ASCII仅为ASCII,8位高位设置为不同的值。
问题出在没有委员会批准扩展ASCII标准的事实。这里有很多变种,没有办法告诉你正在使用什么。
现在C#使用UTF-16编码,它将与您正在使用的任何扩展ASCII不同。
你必须找到匹配的Unicode字符并显示如下
string a ="\u2649" ; //where 2649 is a the Unicode number
Console.write(a) ;
另外,您可以找出哪些编码您的文件使用,并使用它像这样 如。编码的Windows-1252:
Encoding encoding = Encoding.GetEncoding(1252);
和UTF-16
Encoding enc = new UnicodeEncoding(false, true, true);
,并使用
Encoding.Convert (Encoding, Encoding, Byte[], Int32, Int32)
详情here
你需要在这里提供一些更多的上下文转换它:你是在编写一个字符串文字,从控制台读取字符串还是通过UI控制? – dasblinkenlight
你可以举例说明你的代码吗?澄清问题? – imslavko
如果您还没有阅读Joel Spolsky的文章,请务必阅读本文:[绝对最低限度的每位软件开发人员都必须积极地了解Unicode和字符集(无借口!)](http://www.joelonsoftware.com /articles/Unicode.html) – Cameron