【发布时间】:2012-08-17 13:12:12
【问题描述】:
我正在编写一个 Windows 应用程序。在将 Extended ASCII[128-256] 转换为其十进制等效项时遇到问题。
当我从 jar 文件中接收到扩展的 ASCII 比如说“Œ”时,它会像这样进入 C# 应用程序:�.
我能知道如何将其转换为等效的十进制数 [即] 140。
string textToConvert = "Œ";
Encoding iso8859 = Encoding.GetEncoding("iso-8859-1");
Encoding unicode = Encoding.Unicode;
byte[] srcTextBytes = iso8859.GetBytes(textToConvert);
byte[] destTextBytes = Encoding.Convert(iso8859,unicode, srcTextBytes);
char[] destChars = new char[unicode.GetCharCount(destTextBytes, 0, destTextBytes.Length)];
unicode.GetChars(destTextBytes, 0, destTextBytes.Length, destChars, 0);
System.String szchar = new System.String(destChars);
MessageBox.Show(szchar);
请帮助我。我该怎么办??
【问题讨论】:
-
你能解释一下,“十进制”等价物是什么意思?你是说字符代码?或者你想像 OE 一样正确显示它而不是 [?] ?
-
十进制值应该在您的 srcTextBytes 字节数组中。
-
此问题始于 iso-8859-1 编码没有与“Œ”匹配的字符。 en.wikipedia.org/wiki/ISO_8859-1#Codepage_layout结果是GIGO。
-
你想要的是 Windows-1252 编码。
-
@quetzalcoatl:是的,字符代码..
标签: c# winforms ascii extended-ascii asciiencoding