わかりましたので、C++ (Visual Studio 2012 Express) を使用して、W8 でアクセント (フランス語) 付きの json 形式のテキスト ファイルを読み込もうとしています。
これはファイルです:
{"products": [{"id": 125, "label": "Billél"}, {"id": 4, "label": "Rùbin"}]}
UTF-8 (BOM なし) でエンコードされた 1 行は、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 インターナショナル Latin-1) です。
コンソールに正しいアクセントを出力するコードを取得するにはどうすればよいですか? 可能であれば、最終的にはクロスプラットフォーム ソリューションが必要になります。