好的,所以我正在尝试使用 C++(Visual Studio 2012 Express)在 W8 下读取带有重音符号(法语)的 json 格式的文本文件。
这是文件:
{"products": [{"id": 125, "label": "Billél"}, {"id": 4, "label": "Rùbin"}]}
一行,以 UTF-8 编码(无 BOM),另存为 D:/p.txt
这是 C++ 中的阅读代码:
std::ifstream in("D:/p.txt", std::ios::binary | std::ios::in);
std::string content( (std::istreambuf_iterator<char>(in) ), (std::istreambuf_iterator<char>() ) );
我得到的输出:
{"products": [{"id": 125, "label": "Bill├®l"}, {"id": 4, "label": "R├╣bin"}]}
尝试使用CharToOema:
{"products": [{"id": 125, "label": "Billél"}, {"id": 4, "label": "Rùbin"}]}
我的代码页应该允许我在控制台中显示重音(我尝试回显这样的重音,从而产生了非常好的显示)。我的 c++ 控制台的输入和输出代码页都是 CP850 (IBM Internatinal Latin-1)。
如何让我的代码在控制台中输出正确的重音?如果可能的话,我最终需要一个跨平台的解决方案。