コンソールではなく出力ウィンドウに表示するアラビア語のユニコード文字列があるため、OutputDebugStringW しか使用できず、SetConsoleOutputCP(1256) を呼び出してアラビア語コード ページを設定しましたが、それでも「????」しか出力しません。私は何をすべきか...
1585 次
1 に答える
1
これは、OutputDebugStringW()の文書化された制限です。
OutputDebugStringWは、現在のシステムロケール情報に基づいて指定された文字列を変換し、それをOutputDebugStringAに渡して表示します。その結果、一部のUnicode文字が正しく表示されない場合があります。
SetConsoleOutputCP()を呼び出しても問題は解決せず、デバッガーではなくコンソールウィンドウのコードページが変更されます。システムロケール、コントロールパネル+リージョン、管理タブを変更する必要があります。アラビア語がお気に入りの言語である場合は、1256に変更するのが適切です。もちろん、システム全体に影響を及ぼします。
于 2012-03-13T12:49:46.907 に答える