如何判断文本文件的编码方式?

文本文件通常通过其前2个字节来标识自身的编码方式,但UTF-32编码则通过前4个字节来标识自己的编码方式。下面是一些编码格式的标识:

编码方式 前几个字节值
ANSI 无格式定义
Unicode FF FE
Unicode big endian FE FF
UTF-8 EF BB
UTF-16/UCS-2, little endian FE FF
UTF-16/UCS-2, big endian FF FE
UTF-32/UCS-4, little endian FF FE 00 00
UTF-32/UCS-4, big-endian 00 00 FE FF

这样一来,我们写代码的时候只需要读取文件的前2个字节~4个字节,即可知道其编码方式。但在.Net中,还有另一种更简单的办法可以知道文本文件的编码方式,及使用以下的代码:

public Encoding GetEncoding(string file)
{
    var r = new StreamReader(file, true); //这里的true表示由程序自动判断文件编码
    return r.CurrentEncoding; //返回编码
}

posted on 2010-11-08 15:56  阿齐  阅读(2735)  评论(3编辑  收藏  举报