轉載: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 }