C# 判读取得字符编码格式
FileStream fs1 = new FileStream(folder + strPath, FileMode.Open); byte[] bytes = new byte[fs1.Length]; fs1.Read(bytes, 0, bytes.Length); // 设置当前流的位置为流的开始 fs1.Seek(0, SeekOrigin.Begin); UniversalDetector Det = new UniversalDetector(null); Det.HandleData(bytes, 0, bytes.Length); Det.DataEnd(); //得到文档字符编码类型 string cLX = Det.GetDetectedCharset();
string Text = Encoding.GetEncoding(cLX).GetString(bytes);
//第2种方式 StreamReader sr = new StreamReader(fs1, Encoding.GetEncoding(cLX)); string str1 = sr.ReadToEnd();
UniversalDetector这个是个第三方的字符编码识别,准确率还是可以的
http://pan.baidu.com/s/1pJ5C6TX
UniversalDetector 源码链接如上