vc如何判断一个txt文件的编码格式
都说txt文件的头几个字节是编码格式
头2个字节如果是 fe ff 表示编码格式为unicode big endian;
头2个字节如果是 ff fe 表示 unicode;
头3个字节如果是 ef bb bf 表示 utf-8;
可是有些txt文件没有上面这种编码类型头,而记事本和ultra edit也可以正常打开,请问它们是根据什么判断编码的
ANSI,UTF-8一个是单字节,一个是多字节,可以尝试两种方式转换看哪种对
没有格式的文本编码,只有通过编码范围去尝试,不一定准确
/*
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.
*/先检查头几个字节。
没有的话用
BOOL IsTextUnicode( CONST VOID* pBuffer, int cb, LPINT lpi );
99%都可以检测出来