转载:https://blog.csdn.net/kikityan/article/details/89923808
记事本打开txt文件,然后另存,有四种编码格式可供选择,分别是:
ANSI 无格式定义 对于中文编码格式是GB2312;
Unicode 文本里前两个字节为FF FE 字节流是little endian
Unicode big endian 文本里前两个字节为FE FF 字节流是big endian
UTF-8 前两字节为EF BB,第三字节为BF 带bom
下面用c++判断这四种编码格式
1 #include <fstream> 2 using namespace std; 3 4 int main() 5 { 6 ifstream fin("C:/Users/Administrator/Desktop/w/1.cpp",ios::binary); 7 unsigned char s2; 8 fin.read((char*)&s2, sizeof(s2));//读取第一个字节,然后左移8位 9 int p = s2<<8; 10 fin.read((char*)&s2, sizeof(s2));//读取第二个字节 11 p |=s2; 12 13 string code; 14 15 switch(p)//判断文本前两个字节 16 { 17 case 0xfffe: //65534 18 code = "Unicode"; 19 break; 20 case 0xfeff://65279 21 code = "Unicode big endian"; 22 break; 23 case 0xefbb://61371 24 code = "UTF-8"; 25 break; 26 default: 27 code = "ANSI"; 28 } 29 fin.close(); 30 return 0; 31 }