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



我有一个文本文件有错误的BOM(FF FE,但文本的真正编码是ISO-8859-9)。我尝试这个代码:

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

但它不起作用——字符集被破坏了。有人能帮我读这份文件吗?

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

byte[] rawdata = File.ReadAllBytes("...");
byte[] correctedRawdata = rawdata.Skip(2).ToArray();
Encoding encoder = Encoding.GetEncoding("iso-8859-9");
string text = encoder.GetString(correctedRawdata);

最新更新