2011-04-12 10:42:07 +0000 2011-04-12 10:42:07 +0000
131
131
Advertisement

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

Advertisement

現在、私はWindows 7 x64を使用していますが、通常はすべてのコンソールツールをデフォルトコードページ850ではなくUTF-8で動作するようにしたいと思っています。

chcp 65001を使う前にコマンドプロンプトでHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage\OEMCPを実行しておくと便利ですが、デフォルトのコードページに設定する方法はありますか?

Update:

65001の値をHKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\Autorunに変更すると、私の場合、システムが起動できなくなるようです。(Ole_Brunさんありがとうございます。)(https://superuser.com/questions/269818/change-default-code-page-of-windows-console-to-utf-8/269857#269857))

Advertisement
Advertisement

回答 (6)

102
102
102
2011-04-12 12:22:32 +0000

コンソールのみのコードページを変更するには、次のようにします。Start -> Run -> regedit 2. に移動して、[HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\Autorun] 3. 値を chcp 65001 に変更します。

41
41
41
2013-12-07 15:36:03 +0000

個人的にはレジストリを変更するのは好きではありません。これが原因で色々と問題が発生することがあります。私はバッチファイルを作成しました:

@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

Voilá、私はUTF-8で入力する必要がある場合は、このリンクを使用しています。

35
Advertisement
35
35
2015-06-13 20:39:21 +0000
Advertisement

Reg ファイル:

Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe]
"CodePage"=dword:fde9
  1. 値は 16 進数でなければならない](//stackoverflow.com/a/34005301)
  2. Top line は のように正確に含まれていなければなりません。HKEYCURRENTUSER は省略できません
  3. dword は省略できません

コマンドプロンプト: REG ADD HKCU\Console\%SystemRoot^%_system32_cmd.exe /v CodePage /t REG_DWORD /d 65001

  1. 値は dec または 16 進数で指定してください。SystemRoot%は必ずエスケープしてください。REG_DWORD を省略することはできません * * * *

PowerShell:

New-Item -ErrorAction Ignore HKCU:\Console\%SystemRoot%_system32_cmd.exe
Set-ItemProperty HKCU:\Console\%SystemRoot%_system32_cmd.exe CodePage 65001
  1. 値はdecまたは16進数で指定できます。使用可能 -Type DWord
  2. 5.007

5.007

regtool add '\HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe'
regtool set '\HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe\CodePage' 65001

Cygwin:

&001

  1. 値は dec か 16 進数である場合もあります
  2. 使用することができます ni -> New-Item
  3. 使用することができます sp -> Set-ItemProperty
  4. 使用することができます -ea 0 -> -ErrorAction Ignore
10
10
10
2019-05-11 14:44:42 +0000

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

この方法は、コマンドプロンプトから起動しないアプリケーションにも適用されます! (Atom から Agda コードを編集しようとしていたので、私にとっては必要不可欠でした)

6
Advertisement
6
6
2017-09-03 20:56:45 +0000
Advertisement

これは、PowerShell プロファイルを作成し、そこに “chcp 65001 >$null” コマンドを追加することで行うことができます:

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

&001

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

5
5
5
2016-11-02 21:11:54 +0000

コードページを変更するコマンドはchcp <codepage>です。例: chcp 1252. これはパワーシェルのウィンドウで入力する必要があります。毎回入力する手間を省くために(常にコードページを変更しなければならない場合)、プログラムのコマンドラインに追加することができます。そのためには、以下の手順に従ってください:

  1. スタートメニューの Powershell アイコンを右クリックして、"More “を選択し、"Open file Location "を選択します。Powershell のショートカットを右クリックし、"Properties "を選択します。Target "コマンドラインの最後に以下を追加します。他に選択肢がない限り、Windowsのレジストリをいじらないでください。
Advertisement

関連する質問

3
19
10
28
11
Advertisement