有什么好的方法能识别到TXT文本的编码吗
判断TXT的编码类型,用下面的方法,但有些UTF-8的TXT还是验证不了啊
bResult = ReadFile(hSrcFile,cBuffer,lSizeOfFile, &dwNumOfBytesRead, NULL);//读取内容
byte bFirst=cBuffer[0];byte bSecond=cBuffer[1];
if((bFirst==0xff)&&(bSecond==0xfe))
{
iCodingType=codingType_Unicode;
}
else if((bFirst==0xfe)&&(bSecond==0xff))
{
iCodingType=codingType_UnicodeBigEndian;
}
else if((bFirst==0xef)&&(bSecond==0xbb))
{
iCodingType=codingType_UTF8;
}
else
{
iCodingType=codingType_ANSI ;
};
请高手指点下
[解决办法]
utf-8的bom是三个字节:EF BB BF
[解决办法]
IsTextUnicode
也能判断一些。
[解决办法]
最标准的途径是检测文本最开头的几个字节,楼主可以以不同编码保存后研究一下各种格式看看.比如
开头字节 Charset/encoding
EF BB BF UTF-8
FE FF UTF-16/UCS-2, little endian
FF FE UTF-16/UCS-2, big endian
FF FE 00 00 UTF-32/UCS-4, little endian.
00 00 FE FF UTF-32/UCS-4, big-endian.