是否可以在C#中正确读取错误BOM的文本文件?

时间:2015-11-26 13:26:53

标签: c# text encoding

我的文本文件有错误的BOM(FF FE,但文本的实际编码是ISO-8859-9)。 我试试这段代码:

Encoding encoding = Encoding.GetEncoding("iso-8859-9");
string content = File.ReadAllText(@"D:\Documents\test.txt", encoding);

但它不起作用 - 字符集被打破了。 有人可以帮我读一下这个文件吗?

1 个答案:

答案 0 :(得分:0)

正如Adriano在评论中已提到的,您可能需要跳过文件的前两个字节。这可以通过使用

来完成
byte[] rawdata = File.ReadAllBytes("...");
byte[] correctedRawdata = rawdata.Skip(2).ToArray();
Encoding encoder = Encoding.GetEncoding("iso-8859-9");

string text = encoder.GetString(correctedRawdata);