cout( / wcout/ ...) char32_t を C++11 のコンソールに出力するにはどうすればよいですか?
次のコードは、16 進値を出力します。
u32string s2 = U"Добрый день";
for(auto x:s2){
wcout<<(char32_t)x<<endl;
}
まず、wcout文字として印刷することになっているとは思わないが、charand wchar_t. char32_tどちらでもありません。
個々の を出力するサンプル プログラムを次に示しますwchar_t's。
#include <iostream>
using namespace std;
int main()
{
wcout << (wchar_t)0x41 << endl;
return 0;
}
出力 ( ideone ):
A
現在、主要な OS でもコンソールで一貫した Unicode 出力を取得することは不可能です。cout、wcout、printf()などを介した単純な Unicode テキスト出力は、wprintf()主要なハックなしでは Windows では機能しません。Windows コンソールで読み取り可能な Unicode テキストを取得する際の問題は、適切な Unicode フォントを選択できることにあります。Windows のコンソールは、この点でかなり壊れています。私のこの回答を見て、その中のリンクをたどってください。