所以我在字符编码方面遇到了一些麻烦。当我将以下两个字符放入 UTF32 编码的文本文件时:
鸕
然后在它们上运行此代码:
System.IO.StreamReader streamReader =
new System.IO.StreamReader("input", System.Text.Encoding.UTF32, false);
System.IO.StreamWriter streamWriter =
new System.IO.StreamWriter("output", false, System.Text.Encoding.UTF32);
streamWriter.Write(streamReader.ReadToEnd());
streamWriter.Close();
streamReader.Close();
我得到:
鸕
鸕
(相同的字符两次,即输入文件!=输出)
一些可能有帮助的事情:第一个字符的十六进制:
15 9E 02 00
对于第二个:
15 9E 00 00
我使用 gedit 创建文本文件,使用 mono 用于 C#,我使用的是 Ubuntu。
如果我为输入或输出文件指定编码也没关系,如果它是 UTF32 编码,它只是不喜欢它。如果输入文件采用 UTF-8 编码,它就可以工作。
输入文件如下:
FF FE 00 00 15 9E 02 00 0A 00 00 00 15 9E 00 00 0A 00 00 00
这是一个错误,还是只是我?
谢谢!