Windowsのcmd.exeにデフォルトでインストールされる866文字セットは、栄光のユニコードと比較して貧弱で不便です。
Unicodeをデフォルトでインストールするか、cmd.exeを別のコンソールに置き換えて、プログラムがcmd.exeの代わりに使用するようにデフォルトにすることはできますか?
chcp 65001は実行中のコンソールでのみエンコーディングを変更することを理解しています。システムレベルで文字セットを変更したい。
Algirdasのソリューションを試した後、Windowsがクラッシュ(Win 7 Pro 64ビット)したため、別のソリューションを試すことにしました。
Run
(Win + R)cmd /K chcp 65001
あなたが望むものをほとんど得るでしょう。タスクバーまたはその他の場所から起動するには、ショートカットを作成し(cmd.unicode.exe
または任意の名前を付けることができます)、Target
をC:\Windows\System32\cmd.exe /K chcp 65001
に変更します。
Regファイル
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Console]
"CodePage"=dword:fde9
コマンド・プロンプト
REG ADD HKCU\Console /v CodePage /t REG_DWORD /d 0xfde9
パワーシェル
sp -t d HKCU:\Console CodePage 0xfde9
シグウィン
regtool set /user/Console/CodePage 0xfde9
管理者特権でコマンドプロンプトを開きます(管理者としてcmdを実行します)。コンソールで使用可能なTTフォントをレジストリに照会するには、次のようにします。
REG query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont"
次のような出力が表示されます。
0 REG_SZ Lucida Console
00 REG_SZ Consolas
936 REG_SZ *新宋体
932 REG_SZ *MS ゴシック
次に、Courier Newなどの必要な文字をサポートするTTフォントを追加する必要があります。文字列名にゼロを追加することにより、この場合、次の文字列は "000"になります。
REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont" /v 000 /t REG_SZ /d "Courier New"
次に、UTF-8サポートを実装します。
REG ADD HKCU\Console /v CodePage /t REG_DWORD /d 65001 /f
デフォルトのフォントを「Courier New」に設定します。
REG ADD HKCU\Console /v FaceName /t REG_SZ /d "Courier New" /f
フォントサイズを20に設定します。
REG ADD HKCU\Console /v FontSize /t REG_DWORD /d 20 /f
必要に応じてクイック編集を有効にします。
REG ADD HKCU\Console /v QuickEdit /t REG_DWORD /d 1 /f
次を「.reg」という接尾辞を付けてファイルに保存します。
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe]
"CodePage"=dword:0000fde9
このファイルをダブルクリックすると、regeditがインポートします。
基本的に、キーHKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe\CodePage
を0xfde9(10進法で65001)に設定します。