您的位置:首页 > 编程语言 > C语言/C++

c++判断文件编码格式

2017-01-28 21:50 204 查看
记事本打开txt文件,然后另存,有四种编码格式可供选择,分别是:

ANSI 无格式定义 对于中文编码格式是GB2312;

Unicode 文本里前两个字节为FF FE 字节流是little endian

Unicode big endian 文本里前两个字节为FE FF 字节流是big endian

UTF-8 前两字节为EF BB,第三字节为BF 带bom

下面用c++判断这四种编码格式

#include <fstream>
using namespace std;

int main()
{
ifstream fin("C:/Users/Administrator/Desktop/w/1.cpp",ios::binary);
unsigned char  s2;
fin.read((char*)&s2, sizeof(s2));//读取第一个字节,然后左移8位
int p = s2<<8;
fin.read((char*)&s2, sizeof(s2));//读取第二个字节
p +=s2;

string code;

switch(p)//判断文本前两个字节
{
case 0xfffe:  //65534
code = "Unicode";
break;
case 0xfeff://65279
code = "Unicode big endian";
break;
case 0xefbb://61371
code = "UTF-8";
break;
default:
code = "ANSI";
}
fin.close();
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: