C#获取文本文档Txt的编码格式,在读取txt文档的时候需要设定编码,一般我们手动新建的txt文档编码都可以用Encoding.Default来进行读取,但有些txt文档是通过别的工具或者软件导出来的,格式就有多种了。那么在经常需要读取txt文档的地方加上对文本文档的编码判断是有必要的。
/// <summary> /// 获取文档编码 /// </summary> /// <param name="filename">txt文档完整路径</param> /// <returns></returns> public static System.Text.Encoding GetFileEncodeType(string filename) { using (FileStream fs = new FileStream(filename, System.IO.FileMode.Open, System.IO.FileAccess.Read)) { using (BinaryReader br = new BinaryReader(fs)) { Byte[] buffer = br.ReadBytes(2); if (buffer[0] >= 0xEF) { if (buffer[0] == 0xEF && buffer[1] == 0xBB) { return Encoding.UTF8; } else if (buffer[0] == 0xFE && buffer[1] == 0xFF) { return Encoding.BigEndianUnicode; } else if (buffer[0] == 0xFF && buffer[1] == 0xFE) { return Encoding.Unicode; } else { return Encoding.Default; } } else { return Encoding.Default; } } } }