转换扩展ASCII/ANSI值

本文关键字:ANSI ASCII 扩展 转换 | 更新日期: 2023-09-27 18:16:29

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

转换扩展ASCII/ANSI值

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

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

使用编码。违约。