1
アラビア文字でユニコード文字列をコンソールからではなく出力ウィンドウに表示するので、OutputDebugStringWのみを使用でき、SetConsoleOutputCP(1256)を呼び出してアラビア語コードページを設定します。 "私は何をすべきか...VS出力ウィンドウにUnicodeアラビア文字列を表示する方法は?
アラビア文字でユニコード文字列をコンソールからではなく出力ウィンドウに表示するので、OutputDebugStringWのみを使用でき、SetConsoleOutputCP(1256)を呼び出してアラビア語コードページを設定します。 "私は何をすべきか...VS出力ウィンドウにUnicodeアラビア文字列を表示する方法は?
これはOutputDebugStringW()のためのdocumented restrictionです:
OutputDebugStringWは、現在のシステムロケール情報に基づいて指定された文字列を変換して表示するOutputDebugStringAに渡します。その結果、一部のUnicode文字が正しく表示されないことがあります。
SetConsoleOutputCP()を呼び出すと問題が解決されず、デバッガではなくコンソールウィンドウのコードページが変更されます。システムロケール(コントロールパネル+地域、管理タブ)を変更する必要があります。アラビア語が好きな言語ならば、それを1256に変更するのが適切なことです。もちろん、システム全体に影響を与えます。