web-dev-qa-db-ja.com

WindowsコンソールのデフォルトコードページをUTF-8に変更

現在私は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

118
Regent

コンソール専用のコードページを変更するには、次の手順に従います。

  1. スタート - >ファイル名を指定して実行 - > regedit
  2. [HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\Autorun]に行く
  3. 値をchcp 65001に変更します
96

個人的には、レジストリを変更するのは好きではありません。これは多くの問題を引き起こす可能性があります。私はバッチファイルを作成しました:

@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を入力する必要があるとき、私はこのリンクを使います。

36
juca

Regファイル:

Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe]
"CodePage"=dword:fde9
  1. 値は16進数でなければなりません
  2. 一番上の行はそのまま含める必要があります
  3. HKEY_CURRENT_USERは省略できません
  4. dwordは省略できません

コマンド・プロンプト:

REG ADD HKCU\Console\%SystemRoot^%_system32_cmd.exe /v CodePage /t REG_DWORD /d 65001
  1. 値は10進数または16進数です。
  2. %SystemRoot%はエスケープする必要があります
  3. REG_DWORDは省略できません

パワーシェル:

New-Item -ErrorAction Ignore HKCU:\Console\%SystemRoot%_system32_cmd.exe
Set-ItemProperty HKCU:\Console\%SystemRoot%_system32_cmd.exe CodePage 65001
  1. 値は10進数または16進数です。
  2. -Type DWordはPowerShell 3+で想定されています
  3. ni -> New-Itemを使用できます
  4. sp -> Set-ItemPropertyを使用できます
  5. -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
  1. 値は10進数または16進数です。
  2. / -> \を使用できます
  3. HKCU -> HKEY_CURRENT_USERを使用できます
  4. user -> HKEY_CURRENT_USERを使用できます
31
Steven Penny

これは、PowerShellプロファイルを作成し、それにコマンド "chcp 65001> $ null"を追加することによって実行できます。

PS> Set-ExecutionPolicy RemoteSigned
PS> New-Item -Path $Profile -ItemType file -Force
PS> notepad $Profile

これはレジストリの編集を必要とせず、ショートカットの編集とは異なり、Windowsエクスプローラのコンテキストメニューを使用して特定のフォルダでPowerShellを起動した場合でも機能します。

5
Freon Sandoz

コードページを変更するためのコマンドはchcp <codepage>です。例:chcp 1252。あなたはPowershellウィンドウにそれをタイプするべきです。毎回入力する手間を省くために(常にコードページを変更する必要がある場合)、プログラムのコマンドラインに追加することができます。これを行うには、次の手順に従います。

  1. スタートメニューのPowershellアイコンを右クリックして、「その他」>「ファイルの場所を開く」を選択します。
  2. Powershellショートカットを右クリックして、[プロパティ]を選択します。
  3. "Target"コマンドラインの末尾に次を追加します。-NoExit -Command "chcp 1252"

幸せになる。他に選択肢がない場合を除き、Windowsレジストリを使用してください。

5
JColares

Windows 10の1809ビルドでは、システムのLanguage settingsに行き、Administrative language settingsを選択し、Change system locale...をクリックし、そしてBeta: Use Unicode UTF-8 for worldwide language supportボックスをチェックし、そして私のパソコンを再起動することによってこれを永久に解決することができました。

このように、私がコマンドプロンプトから始めていないものも含めて、すべてのアプリケーションに適用されます。

2
Isti115