读取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

上一篇: Read Unicode files C++

下一篇: How do I override NSError presentation when bindings is involved?