在C#中读取文件的问题

时间:2011-02-25 07:41:29

标签: c# encoding

我有cp866编码的文件。在某些地方,它的文件包含十六进制代码中的符号0。当我尝试使用File.ReadAllText()或streamReader.Read()读取此文件时,它将停止读取此符号中的文件。如何解决这个问题?
[UPDATE]
我认为符号0x0表示文件结束。

2 个答案:

答案 0 :(得分:4)

你在找这样的东西吗?

Encoding encoding = Encoding.GetEncoding(866);
string text = File.ReadAllText("foo.txt", encoding);

假设你想要代码页 866。

我不太了解CP866是否通常包含0个字节...但如果您的文本文件有效 CP866,则上面应该读取它。

答案 1 :(得分:1)

嗯。我认为你应该把文件读作二进制文件而不是文本文件。