转换扩展的ASCII / ANSI值

时间:2011-12-03 15:09:59

标签: c# extended-ascii

我有一个程序输入文本并使用许多函数对其进行排序,无论格式如何,文本都应该是可读的,但是,当导入保存为扩展ASCII编码的文件时,忽略任何超过127的字符。环顾四周,我似乎无法看到如何克服这一点。这些文件可以用UTF-8和Unicode读取。我已经尝试将字符串转换为UTF-8,但所讨论的字母仍然只是形状问号而不是形状。我可以看到值是正确的:û的0xBF,但它们没有被解释为值。

任何人都可以帮助我,我之前没有做过很多这方面的工作。如果有帮助的话,我正在使用C#。

我目前的转换代码如下所示:

System.Text.UTF8Encoding u = new System.Text.UTF8Encoding();
byte[] asciiBytes = Encoding.UTF8.GetBytes(sd);
sd = u.GetString(asciiBytes);

sd是字符串。当我导入此字符串时,我没有指定文本编码:

string input = File.ReadAllText(fname);
...
parser(input);

1 个答案:

答案 0 :(得分:2)

  

我可以看到值是正确的:0xBF表示û

这不是û的utf-8编码,它是一个双字节序列,0xC3 + 0xBB。显然你猜对了文件编码错了。 Windows代码页1252中该字符的编码在西欧和美洲很常见,为0xFB。在英国也是常见的,您的居住国。你扭转了数字吗?

请改用Encoding.Default。