读取Unicode文件C ++
我有一个简单的问题要问。 我有一个以FFFE开头的UTF 16文本文件。 什么是C ++工具来处理这种文件? 我只想读取它,过滤一些行并显示结果。
它看起来很简单,但我只是在使用简单的ascci文件方面有经验,而且我很着急。 我正在使用VS C ++,但我不想使用托管C ++。
问候
这里举一个非常简单的例子
wifstream file;
file.open("C:appLog.txt", ios::in);
wchar_t buffer[2048];
file.seekg(2);
file.getline(buffer, bSize-1);
wprintf(L"%sn", buffer);
file.close();
您可以使用读取16位字符的fgetws。 您的文件采用小端,字节顺序。 由于x86机器也是小端,你应该能够处理文件,而不会有太多麻烦。 当你想做输出时,使用fwprintf。
另外,我同意更多信息可能有用。 例如,你可能正在使用一个抽象出一些这样的库。
由于您很匆忙,请在二进制模式下使用ifstream并完成您的工作。 我和你有同样的问题,这节省了我的一天。 (这不是一个推荐的解决方案,当然,它只是一个黑客)
ifstream file;
file.open("k:/test.txt", ifstream::in|ifstream::binary);
wchar_t buffer[2048];
file.seekg(2);
file.read((char*)buffer, line_length);
wprintf(L"%sn", buffer);
file.close();
对于它的价值,我想我已经阅读过你必须使用Microsoft函数,它允许您指定编码。
http://msdn.microsoft.com/en-us/library/z5hh6ee9(VS.80).aspx
链接地址: http://www.djcxy.com/p/42667.html下一篇: How do I override NSError presentation when bindings is involved?