如何在cmd.exe默认Unicode Unicode字符集?

866字符集默认情况下安装在Windows'cmd.exe与光荣的Unicode相比较差和不方便。

我可以在默认情况下安装Unicode或将cmd.exereplace为另一个控制台,并使其成为默认值,以便程序使用它而不是cmd.exe?

我知道chcp 65001仅在运行控制台中更改编码。 我想在系统级别更改字符集。

在我尝试algirdas的解决scheme后,我的Windows崩溃(Win 7 Pro 64位),所以我决定尝试一个不同的解决scheme:

  1. 开始Run (Win + R)
  2. 键入cmd /K chcp 65001

你会得到你想要的。 要从任务栏或其他任何地方启动它,创build一个快捷方式(可以将其命名为cmd.unicode.exe或任何您喜欢的),并将其Target更改为C:\Windows\System32\cmd.exe /K chcp 65001

注册文件

 Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Console] "CodePage"=dword:fde9 

命令提示符

 REG ADD HKCU\Console /v CodePage /t REG_DWORD /d 0xfde9 

电源shell

 sp -td HKCU:\Console CodePage 0xfde9 

Cygwin的

 regtool set /user/Console/CodePage 0xfde9 

打开提升的命令提示符(以pipe理员身份运行cmd)。 通过以下方式查询您的registry以获取可用的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 ゴシック 

现在我们需要添加一个TT字体来支持像Courier New这样需要的字符,我们通过在string名称中加零来实现,所以在这种情况下,下一个字符将是“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 

双击这个文件,并注册将导入它。

它基本上将HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe\CodePage CodePage键设置为0xfde9(十进制中的65001)。