我有cp866编码的文件。在某些地方,它的文件包含十六进制代码中的符号0。当我尝试使用File.ReadAllText()或streamReader.Read()读取此文件时,它将停止读取此符号中的文件。如何解决这个问题?
的 [UPDATE]
我认为符号0x0表示文件结束。
答案 0 :(得分:4)
你在找这样的东西吗?
Encoding encoding = Encoding.GetEncoding(866);
string text = File.ReadAllText("foo.txt", encoding);
假设你想要代码页 866。
我不太了解CP866是否通常包含0个字节...但如果您的文本文件有效 CP866,则上面应该读取它。
答案 1 :(得分:1)
嗯。我认为你应该把文件读作二进制文件而不是文本文件。