c++判断文件编码格式
记事本打开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; }
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: android webview 电脑网页适应手机屏幕
- 下一篇: COBOL 入门