現在私はWindows 7 x 64を実行していて、通常すべてのコンソールツールをデフォルトのコードページ850ではなくUTF-8で動作させたいです。
ツールを使用する前にコマンドプロンプトでchcp 65001
を実行すると効果的ですが、デフォルトのコードページとして設定する方法はありますか?
更新:
私の場合、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage\OEMCP
の値を65001
に変更するとシステムが起動できなくなります。
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\Autorun
から@chcp 65001>nul
への提案された変更は私の目的のためにちょうどよく役立ちました。 (ありがとう Ole_Brun )
コンソール専用のコードページを変更するには、次の手順に従います。
[HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\Autorun]
に行くchcp 65001
に変更します個人的には、レジストリを変更するのは好きではありません。これは多くの問題を引き起こす可能性があります。私はバッチファイルを作成しました:
@ECHO OFF
REM change CHCP to UTF-8
CHCP 65001
CLS
私はC:\Windows\System32
にswitch.batとして保存しました。
デスクトップにcmd.exeのリンクを作成しました。
Cmdショートカットのプロパティで、出力先を次のように変更します。C:\Windows\System32\cmd.exe /k switch
私がUTF-8を入力する必要があるとき、私はこのリンクを使います。
Regファイル:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe]
"CodePage"=dword:fde9
コマンド・プロンプト:
REG ADD HKCU\Console\%SystemRoot^%_system32_cmd.exe /v CodePage /t REG_DWORD /d 65001
パワーシェル:
New-Item -ErrorAction Ignore HKCU:\Console\%SystemRoot%_system32_cmd.exe
Set-ItemProperty HKCU:\Console\%SystemRoot%_system32_cmd.exe CodePage 65001
-Type DWord
はPowerShell 3+で想定されていますni -> New-Item
を使用できますsp -> Set-ItemProperty
を使用できます-ea 0 -> -ErrorAction Ignore
を使用できますCygwin:
regtool add '\HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe'
regtool set '\HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe\CodePage' 65001
/ -> \
を使用できますHKCU -> HKEY_CURRENT_USER
を使用できますuser -> HKEY_CURRENT_USER
を使用できますこれは、PowerShellプロファイルを作成し、それにコマンド "chcp 65001> $ null"を追加することによって実行できます。
PS> Set-ExecutionPolicy RemoteSigned
PS> New-Item -Path $Profile -ItemType file -Force
PS> notepad $Profile
これはレジストリの編集を必要とせず、ショートカットの編集とは異なり、Windowsエクスプローラのコンテキストメニューを使用して特定のフォルダでPowerShellを起動した場合でも機能します。
コードページを変更するためのコマンドはchcp <codepage>
です。例:chcp 1252
。あなたはPowershellウィンドウにそれをタイプするべきです。毎回入力する手間を省くために(常にコードページを変更する必要がある場合)、プログラムのコマンドラインに追加することができます。これを行うには、次の手順に従います。
-NoExit -Command "chcp 1252"
幸せになる。他に選択肢がない場合を除き、Windowsレジストリを使用してください。
Windows 10の1809ビルドでは、システムのLanguage settings
に行き、Administrative language settings
を選択し、Change system locale...
をクリックし、そしてBeta: Use Unicode UTF-8 for worldwide language support
ボックスをチェックし、そして私のパソコンを再起動することによってこれを永久に解決することができました。
このように、私がコマンドプロンプトから始めていないものも含めて、すべてのアプリケーションに適用されます。