web-dev-qa-db-ja.com

ウィンドウの下のcmdウィンドウ内に日本語の漢字を表示するにはどうすればよいですか?

英語のWindows2003サーバーでアジア言語のサポートが有効になっています。コマンドウィンドウ(cmd設定)で使用できる2つのフォントは、ラスターとlucidaコンソールのみです。どちらも漢字を正しく表示しません(疑問符として表示されます)。

それらを表示させるための解決策はありますか?コンソールに書き出す前に、アプリケーションで実行する必要のある変換はありますか?

現在UTF8を書き込んでいますが、ASCII文字(öäüßなど)以外の文字でもうまく機能します)。コンソールに書き込むソースコードには正しいデータが含まれています(漢字はで表示できます)。デバッガーは正しく)重要な場合は、C#でアプリを作成しています。

編集:私はこれを見つけました リンク これは問題の背後にある問題を説明し、C#の解決策(ネイティブ呼び出しを含む)を提示します。これは.NET4.5でうまく機能します(私はテストしていません)

15
jdehaan

漢字文字セットを表示するフォントを見つけた場合は、次のレジストリキーの下に値を追加することで、そのフォントをcmd設定に追加できます。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont\

値:

Name: 00
Data: Consolas

私は以前にこれを行ったことがありますが、SuperUserでこの参照を見つけました: https://superuser.com/q/55318

お役に立てれば

6
paludarium

アプリケーションはどのように出力を書き込みますか? printfのようなCバイトベースのstdio呼び出しは、chcp 65001 && somecommandと言ってUTF-8エンコーディングを使用するようにコンソールを特別に設定しない限り、WindowsでUTF-8をサポートしません(それでも問題があります) )。

chcpがないと、コンソールはWindowsインストールのデフォルトのコードページ(この場合はcp1252)を使用し、使用しているコンソールフォントにグリフが含まれていても、漢字で書き込むことはできません。

Unicodeをコンソールに確実に書き込みたい場合は、wprintfのような文字ベースのインターフェースを使用する必要があります。

4
bobince

これは、Windows 7Pro英語版で実行されているcmd.exeで中国語の入出力を取得する方法です。

  1. Cmd.exe(および他のシェル)のフロントエンドである console2、 をインストールします。

  2. インストール後、指示に従ってください ここ

    • レジストリのキー「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
      
  3. フォントを変更する必要がある場合とない場合があります。最初はフォントを@NimSumに設定していましたが、漢字が90度回転して出てきました。次に、NimSum(@なし)に切り替えたところ、正しく出力されました。それから好奇心からコンソラに切り替えましたが、それでも漢字を見ることができます。したがって、実際にフォントを設定する必要があるかどうかはわかりません。

3
crusherjoe