如何在cmd.exe中默认设置Unicode字符集



Windows' cmd.exe '中默认安装的866字符集与出色的Unicode相比差且不方便。

我可以默认安装Unicode或将cmd.exe替换为另一个控制台并使其默认为程序使用它而不是cmd.exe吗?

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

在我尝试了algirdas的解决方案后,我的Windows崩溃了(win7 Pro 64bit),所以我决定尝试一个不同的解决方案:

  1. Start Run (Win+R)
  2. cmd /K chcp 65001

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

打开提升的命令提示符(以管理员身份运行cmd)。向控制台查询注册表中可用的TT字体:

    REG query "HKLMSOFTWAREMicrosoftWindows NTCurrentVersionConsoleTrueTypeFont"

您将看到如下输出:

    0    REG_SZ    Lucida Console
    00    REG_SZ    Consolas
    936    REG_SZ    *新宋体
    932    REG_SZ    *MS ゴシック

现在我们需要添加一个TT字体,支持你需要的字符,如Courier New,我们通过在字符串名称上添加零来实现这一点,所以在这种情况下,下一个将是"000":

    REG ADD "HKLMSOFTWAREMicrosoftWindows NTCurrentVersionConsoleTrueTypeFont" /v 000 /t REG_SZ /d "Courier New"

现在我们实现了UTF-8支持:

    REG ADD HKCUConsole /v CodePage /t REG_DWORD /d 65001 /f

设置默认字体为"Courier New":

    REG ADD HKCUConsole /v FaceName /t REG_SZ /d "Courier New" /f

设置字体大小为20:

    REG ADD HKCUConsole /v FontSize /t REG_DWORD /d 20 /f

如果您喜欢,可以启用快速编辑:

    REG ADD HKCUConsole /v QuickEdit /t REG_DWORD /d 1 /f

将下列内容保存到一个文件中,文件名称为"。reg"后缀:

Windows Registry Editor Version 5.00
[HKEY_CURRENT_USERConsole%SystemRoot%_system32_cmd.exe]
"CodePage"=dword:0000fde9

双击这个文件,regedit会导入它。

它基本上将密钥HKEY_CURRENT_USERConsole%SystemRoot%_system32_cmd.exeCodePage设置为0xfde9(十进制65001)。

对于我来说,对于Visual Studio 2022,当我执行这个".reg"命令。

Windows Registry Editor Version 5.00
[HKEY_CURRENT_USERConsoleC:_Program Files_Microsoft Visual Studio_2022_Professional_Common7_IDE_CommonExtensions_Platform_Debugger_VsDebugConsole.exe]
"CodePage"=dword:0000fde9

这是基于@Shaohua Li的回答:https://stackoverflow.com/a/24711864/2941313。它做同样的事情,但不同的路径(特别是VS2022控制台)。

最新更新