基于.netframework4.0的程序,代码如下:
public int GetTxtCodePage(FileStream filestream)
{
BinaryReader br = new BinaryReader(filestream);
Byte[] buffer = new Byte[3];
int count = br.Read(buffer, 0, 3);
if (buffer[0] >= 0xEF)
{
if (buffer[0] == 0xEF && buffer[1] == 0xBB && buffer[2] == 0xBF)
{
return 65001; //UTF8
}
else if (buffer[0] == 0xFE && buffer[1] == 0xFF)
{
return 1201; //UTF-16 Big endian
}
else if (buffer[0] == 0xFF && buffer[1] == 0xFE)
{
return 1200; //UTF-16 Little endian(unicode)
}
else
{
return 936; //GBK
}
}
else return 936; //GBK
}
测试有些txt文件由于编码不规范,导致了打开乱码。
如有错误,请广大码友指正~~