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

本文关键字:错误 BOM 文本 文件 读取 是否 | 更新日期: 2023-09-27 18:24:40

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

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

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

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

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

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