2012-01-05 35 views
4

英語とヘブライ語の文字を持つwchar_t配列があり、wprintf()を使用して印刷すると、英語の文字のみがコンソールに出力されます。 _wsetlocale(LC_ALL、L "Hebrew")を使用しているとき、私はヘブライ文字を "????"とします。 私が取り組んでいるマシンは、もちろんヘブライ語をサポートしています。UNICODE(ヘブライ語)文字でwprintf

BTW - ヘブライ文字を含むディレクトリにc:\ windows \ system32 \ cmd.exeと 'dir'を使用すると、 "???"ヘブライ語の代わりに。

+0

[C++:WindowsのコンソールへのUnicodeファイルの出力内容](http://stackoverflow.com/questions/4909187/c-output-contents-of-a-unicode-file-to-console -in-windows) –

答えて

2

コンソールフォントがユニコード文字を処理できることを確認しましたか?ほとんどはしません。 Consolasフォントを試してみてください。

私がこれまでに遭遇したとき、マイケル・カプランの記事thisが非常に役立つことがわかりました。

2

基本的にMicrosoftのCランタイムライブラリは、これを可能にするために実装されていません。

_setmode(_fileno(stdout), _O_U16TEXT);を実行すると、wcoutまたはwprintfを使用して書き込むことができます。しかし、coutやprintf、あるいはUTF-16を書かないものを使用しようとすると、プログラムがクラッシュします。

関連する問題