C++判断文件编码格式
2023-09-14 09:07:08 时间
转载: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++判断这四种编码格式
int main()
{
ifstream fin("E:\\C和C++\\log4\\CPlusPlusExamples-master\\CPlusPlusExamples-master\\CppLog4cpp\\gb2312_input_py_mb2.h",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();
cout<<code<<"\n";
}
//有问题。。。。。
相关文章
- C++内存池的实现和原理(一)
- 【C/C++学院】(18)QT文件读写/主窗口类/获取host信息
- c++模板学习10之类模板分文件编写
- atitit.D&D drag&drop拖拽文件到界面功能 html5 web 跟个java swing c#.net c++ 的总结
- paip.c++ 宏的展开调试.
- 【C++服务端技术】智能锁
- C++11常用新特性快速一览
- 通过c++11的std::bind及std::function实现类方法回调,模拟Qt实现信号槽
- c++读写txt与dat文件
- C++ 判断文件内容是二进制还是ASCII
- C/C++使用技巧(二十二):再谈C/C++多文件编译生成与调用的静态库/动态库[本文所有源码分享]
- C++ ofstream/ifstream读写文件demo(二十九)
- C++使用json二维数组格式读写二进制文件(十七)
- Visual Studio Code C++扩展7月更新汇总
- VC++实现打开文件和打开所在文件夹的功能(附源码)
- webrtc Native C++ 客户端的内存释放问题
- c++ 读取二进制bin文件