C++判断文件编码类型(省去你不必要的麻烦!) | 您所在的位置:网站首页 › linux如何查看文件的编码格式是否正确使用 › C++判断文件编码类型(省去你不必要的麻烦!) |
问题来源:
在c++ primier plus第六版的第十七章设计文件操作的习题中,我用记事本创建了一个包含中文的文件,通过传统的ifstream去读取的时候,中文部分出现了乱码,发现是字符编码的问题。 问题相关描述:用上述直接创建方式生成的txt是utf-8,但是如果我们在程序内部通过ofstream去创建文件的话,文件编码是ANSI,这时候通过ifstream读取并不会出错。 判断文件编码参考https://blog.csdn.net/bladeandmaster88/article/details/54767557 这里我对他的代码进行了修改,因为直接在我的电脑上结果不对 #include 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 ifstream fin("chapter17_4.txt"); ofstream fout("chapter17_4.3.txt"); std::wstring_convert conv; string strfile; if (!fin.is_open()) { cerr code = "utf-8"; fin.seekg(0); while (getline(fin, strfile) && strfile.size() > 0) { //cout cout |
CopyRight 2018-2019 实验室设备网 版权所有 |