将 Windows 控制台的默认代码页更改为 UTF-8

将 Windows 控制台的默认代码页更改为 UTF-8

目前我正在运行 Windows 7 x64,通常我希望所有控制台工具都使用 UTF-8,而不是默认代码页 850。

在使用任何工具之前在命令提示符中运行chcp 65001会有所帮助,但是有没有办法将其设置为默认代码页?

更新:

在我的情况下,改变HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage\OEMCP值似乎65001会导致系统无法启动。

建议的更改为HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\Autorun正好@chcp 65001>nul满足我的目的。(感谢奥勒·布伦

答案1

要仅更改控制台的代码页,请执行以下操作:

  1. 开始 -> 运行 -> regedit
  2. [HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\Autorun]
  3. 将值更改为@chcp 65001>nul

如果Autorun不存在,您可以添加New String

答案2

在 Windows 10 1809 版本中,我设法通过进入系统Language settings,选择Administrative language settings,单击Change system locale...并选中该Beta: Use Unicode UTF-8 for worldwide language support框,然后重新启动我的电脑,永久解决了这个问题。

这样,它就适用于所有应用程序,甚至包括那些我不从命令提示符启动的应用程序!
(这对我来说是必要的,因为我试图从 Atom 编辑 Agda 代码。)

Windows 屏幕截图 - 区域设置 - UTF-8

答案3

就我个人而言,我不喜欢更改注册表。这会导致很多问题。我创建了一个批处理文件:

@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 时,我会使用此链接。

答案4

更改代码页的命令是chcp <codepage>。例如:chcp 1252。您应该在 Powershell 窗口中输入它。为了避免每次都输入它的麻烦(如果您总是必须更改代码页),您可以将其附加到程序的命令行。为此,请按照以下步骤操作:

  1. 右键单击开始菜单上的 Powershell 图标,然后选择“更多”>“打开文件位置”。
  2. 右键单击 Powershell 快捷方式并选择“属性”。
  3. 在“目标”命令行末尾添加以下内容:-NoExit -Command "chcp 1252"

开心就好。除非别无选择,否则不要对 Windows 注册表大惊小怪。

相关内容