我有一个巨大的文件,其中包含开头的 unicode 字符串(第一个 ~10,000 个字符左右)我不关心 unicode 部分,我感兴趣的部分不是 unicode 但每当我尝试阅读这些部分时,我得到了'='
,如果我将整个文件加载到 char 数组并写入某个临时文件(不更改数据),ofstream
我得到的数据不正确,实际上我得到的只是一个文本文件,Í
如果我要手动删除 unicode 部分,一切工作正常,所以它似乎ifstream
无法处理包含 unicode 数据的流,但如果这个假设是真的,有没有办法处理这个文件,向我的项目引入一个新库?
谢谢,
编辑:这是一个示例代码,程序从这个文件中读取,其中包含不能用 ASCII 表示的字符(一些,不是全部)。
ifstream inFile("somefile");
inFile.seekg(0,ios_base::end);
size_t size = inFile.tellg();
inFile.seekg(0,ios_base::beg);
char *book = new char[size];
inFile.read(book,size);
for (int i = 0; i < size; i++) {
cout << book[i] << " " << i << endl; //book[i] will always be '='
}
ofstream outFile("TEST.txt");
outFile.write(book,size);
outFile.close();