我有一个程序输入文本并使用许多函数对其进行排序,无论格式如何,文本都应该是可读的,但是,当导入保存为扩展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);
答案 0 :(得分:2)
我可以看到值是正确的:0xBF表示û
这不是û的utf-8编码,它是一个双字节序列,0xC3 + 0xBB。显然你猜对了文件编码错了。 Windows代码页1252中该字符的编码在西欧和美洲很常见,为0xFB。在英国也是常见的,您的居住国。你扭转了数字吗?
请改用Encoding.Default。