1

我有一个程序,它输入文本并使用许多函数对其进行排序,无论格式如何,文本都应该是可读的,但是,当导入保存为扩展 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);
4

1 回答 1

2

我可以看到这些值是正确的: 0xBF for û

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

改用 Encoding.Default。

于 2011-12-03T16:14:32.927 回答