public class EncodingType { public static System.Text.Encoding GetType(string FILE_NAME) { FileStream fs = new FileStream(FILE_NAME, FileMode.Open, FileAccess.Read); System.Text.Encoding r= GetType(fs); fs.Close(); return r; } public static System.Text.Encoding GetType(FileStream fs) { /*byte[] Unicode=new byte[]{0xFF,0xFE}; byte[] UnicodeBIG=new byte[]{0xFE,0xFF}; byte[] UTF8=new byte[]{0xEF,0xBB,0xBF};*/
BinaryReader r = new BinaryReader(fs,System.Text.Encoding.Default); byte[] ss=r.ReadBytes(3); r.Close(); //编码类型 Coding=编码类型.ASCII; if(ss[0]>=0xEF) { if(ss[0]==0xEF && ss[1]==0xBB && ss[2]==0xBF) { return System.Text.Encoding.UTF8; } else if(ss[0]==0xFE && ss[1]==0xFF) { return System.Text.Encoding.BigEndianUnicode; } else if(ss[0]==0xFF && ss[1]==0xFE) { return System.Text.Encoding.Unicode; } else { return System.Text.Encoding.Default; } } else { return System.Text.Encoding.Default; } } }