英語のWindows2003サーバーでアジア言語のサポートが有効になっています。コマンドウィンドウ(cmd設定)で使用できる2つのフォントは、ラスターとlucidaコンソールのみです。どちらも漢字を正しく表示しません(疑問符として表示されます)。
それらを表示させるための解決策はありますか?コンソールに書き出す前に、アプリケーションで実行する必要のある変換はありますか?
現在UTF8を書き込んでいますが、ASCII文字(öäüßなど)以外の文字でもうまく機能します)。コンソールに書き込むソースコードには正しいデータが含まれています(漢字はで表示できます)。デバッガーは正しく)重要な場合は、C#でアプリを作成しています。
編集:私はこれを見つけました リンク これは問題の背後にある問題を説明し、C#の解決策(ネイティブ呼び出しを含む)を提示します。これは.NET4.5でうまく機能します(私はテストしていません)
漢字文字セットを表示するフォントを見つけた場合は、次のレジストリキーの下に値を追加することで、そのフォントをcmd設定に追加できます。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont\
値:
Name: 00
Data: Consolas
私は以前にこれを行ったことがありますが、SuperUserでこの参照を見つけました: https://superuser.com/q/55318
お役に立てれば
アプリケーションはどのように出力を書き込みますか? printf
のようなCバイトベースのstdio呼び出しは、chcp 65001 && somecommand
と言ってUTF-8エンコーディングを使用するようにコンソールを特別に設定しない限り、WindowsでUTF-8をサポートしません(それでも問題があります) )。
chcp
がないと、コンソールはWindowsインストールのデフォルトのコードページ(この場合はcp1252)を使用し、使用しているコンソールフォントにグリフが含まれていても、漢字で書き込むことはできません。
Unicodeをコンソールに確実に書き込みたい場合は、wprintf
のような文字ベースのインターフェースを使用する必要があります。
これは、Windows 7Pro英語版で実行されているcmd.exeで中国語の入出力を取得する方法です。
Cmd.exe(および他のシェル)のフロントエンドである console2、 をインストールします。
インストール後、指示に従ってください ここ
次のデータをWindowsレジストリにインポートします。
中国語(中文)Windowsの場合XP&Vista:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Console\Console2 command window]
"CodePage"=dword:000003a8
"FontSize"=dword:000a0000
"FontFamily"=dword:00000036
"FontWeight"=dword:00000190
"FaceName"="細明體"
"HistoryNoDup"=dword:00000000
日本語(日本語)Windowsの場合XP&Vista:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Console\Console2 command window]
"CodePage"=dword:000003a8
"FontSize"=dword:000a0000
"FontFamily"=dword:00000036
"FontWeight"=dword:00000190
"FaceName"="MS 明朝"
"HistoryNoDup"=dword:00000000
フォントを変更する必要がある場合とない場合があります。最初はフォントを@NimSumに設定していましたが、漢字が90度回転して出てきました。次に、NimSum(@なし)に切り替えたところ、正しく出力されました。それから好奇心からコンソラに切り替えましたが、それでも漢字を見ることができます。したがって、実際にフォントを設定する必要があるかどうかはわかりません。