private Encoding GetFileEncoding(Stream s) { Encoding encoding = Encoding.Default; try { /**//* * ANSI: 无格式定义; * Unicode: 前两个字节为FFFE/255,254; * Unicode big endian: 前两字节为FEFF/254,255; * UTF-8: 前两字节为EFBB/239,187; */ byte[] FirstByte = new byte[2]; s.Read(FirstByte, 0, FirstByte.Length); if (FirstByte[0] == 239 && FirstByte[1] == 187) return Encoding.UTF8; else if (FirstByte[0] == 255 && FirstByte[1] == 254) return Encoding.Unicode; else if (FirstByte[0] == 254 && FirstByte[1] == 255) return Encoding.BigEndianUnicode; } catch { } return encoding; } 转载于:https://www.cnblogs.com/cai9911/archive/2008/03/03/1088524.html