ASCII扩展为C#字符串

时间:2012-12-19 03:18:05

标签: c# ascii

如何在C#中创建一个字符串以接受不可打印的ASCII扩展字符,例如•,当我尝试将字符串放入字符串时,它只是给出一个空格或为空。

3 个答案:

答案 0 :(得分:1)

扩展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

答案 1 :(得分:0)

试试这个.. 将这些字符转换为字符串,如下所示。

string equivalentLetter = Encoding.Default.GetString(new byte[] { (byte)letter });

现在,等效字母包含正确的字符串。 我试过这个欧元符号,它有效。

答案 2 :(得分:0)

.NET字符串是UTF-16编码的,而不是扩展的ascii(无论是什么)。只需在字符中添加一个数字,就可以在UTF-16普通集中为您提供另一个定义的字符。如果要查看基本字符,就像在扩展ASCII编码中那样,您需要将新计算的字母从您正在谈论的任何编码转换为UTF-16。请参阅:http://msdn.microsoft.com/en-us/library/66sschk1.aspx