C で cout を使用して Windows コンソールに Unicode 文字を出力しようとした場合、代わりに奇妙な文字が表示されます。この問題はなぜ発生しますか?Unicode 文字を正しく表示できますか?
この問題は、Unicode 出力を処理しない Windows コンソールのデフォルトの動作によって発生します。これを解決するには、cout の代わりにワイド文字出力ストリーム std::wcout を使用できます。
#include <iostream> int main() { std::wcout << L"Hello World!" << std::endl; return 0; }
ただし、std::wcout を使用しても、コンソールは依然として Unicode 出力の処理に失敗する可能性があります。これに対処するには、コンソールを手動で構成できます。
コンソールを手動で構成するには:
別の解決策は次のとおりです。 _setmode(_fileno(stdout), _O_U16TEXT);。この関数には fcntl.h と io.h を含める必要があり、出力ストリームで Unicode 文字を処理できるようになります。
以上がC を使用して Windows コンソールで Unicode 文字を正しく表示するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。