win32console アプリケーションで UTF-16 文字をコンソールに出力しようとしましたが、出力ストリームのエンコーディングを変更できません。 SetConsoleOutputCP() 関数を使用しようとしましたが、次のコードをテストに使用するとき
std::wcout << GetConsoleOutputCP() << std::endl;//output 866
SetConsoleOutputCP(CP_WINUNICODE); //if i set CP_UTF8 it works
std::wcout << GetConsoleOutputCP() << std::endl;//output 866
2 つのケースで同じ結果 (866) が得られます。正しく動作するように設定しようとするとCP_UTF8
、UTF-16 が必要なのですが、失敗したのはなぜですか? また、出力ストリームのエンコーディングを UTF-16 に設定するにはどうすればよいですか?