私はユニコード文字を処理するC++プログラムを作成しています。 主な問題は、私は私がcharで私のS/wstrings 文字を解析する必要があるアルゴリズムを使用です:wstringとwcoutを使用しても出力が得られません
std::wstring word = L"Héllo"
for (auto &e : word)
// doing something with e
しかし、私はこの実行する場合:
std::wstring word = L"Héllo"
for (auto &e : word)
std::wcout << e << std::endl;
を、私はこの出力を得る:
をH
?
l
l
o
私は何か間違っていますか?
std::wcout << word;
を使用すると、word
が正しく印刷されます。ここで@Benフォークト
FOR
EDITはstd::wcout << std::hex << std::setw(4) << (int)e << L" " << e << L'\n';
とアウトです:
48 H
e9 �
6c l
6c l
6f o
rコンソールはユニコードをサポートしていますか? – NathanOliver
観察:サロゲートペアを扱っていない。なぜなら、未知の文字に対して1行の出力しかないからです。 –
これは、std :: wcoutにすべての文字列を出力すると 'é'が表示されるためです – LightMan