使用非 ASCII 字符集更改 Windows 10 中非传统命令提示符的字体 - 属性与默认值?

使用非 ASCII 字符集更改 Windows 10 中非传统命令提示符的字体 - 属性与默认值?

我正在摆弄 Windows 10 的新命令提示符。我使用的是代码页 936 (GBK)。

我说“新的”是因为我看到它的属性中cmd有一个复选框run legacy command prompt (need restart),默认情况下未选中,所以我猜我正在使用的这个是“较新的”。

问题是,在网上搜索只给了我一些在注册表中添加字体的方法,以使遗产cmd 识别它并在“属性”/“默认值”设置中显示,如下所示:

http://www.techrepublic.com/blog/windows-and-office/quick-tip-add-fonts-to-the-command-prompt/

它提到在显示的位置添加字体条目:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont

让 Windows 知道这个字体。我注意到,那里已经列出的字体和我在旧版 cmd 中看到的字体相同。在普通 cmd 中,我可以看到更多字体。

在此处输入图片描述

请注意,在图片中我打开了一个旧的 cmd 提示符,其中有一些终端字体,在属性设置对话框中,我可以选择的字体是 Consolas 和 Lucida Console,与注册表中的相同。

而且,如果我切换到普通cmd,则会出现两种情况:

  1. 如果我选择编辑“属性”,我会看到更少的字体,并且更改有效。
  2. 如果我选择编辑“默认值”,我会看到更多字体,但更改不会生效。

在“属性”中:

在此处输入图片描述

我可以在这里选择Yahei Consolas Hybrid和其他字体,并且 cmd 会尊重我的设置并立即更改字体。

在默认值中:

在此处输入图片描述

您可以在此处看到更多等宽字体,例如Dejavu Sans MonoMonaco等等,但您无法通过 cmd 更改这些字体。

我不知道这里的区别,但这毫无意义。一些无法遵守的设置不应该存在,更不用说造成的混乱了:“属性”和“默认值”是相同的。

我想要的是将普通 cmd 中的字体更改为 Monaco 或 Dejavu Sans Mono。如果不可能,则在旧版 cmd 中。

顺便说一句,如果有人可以澄清“属性”和“默认值”之间的区别,那就太好了。

答案1

现在我找到答案了,谢谢大家的帮助。一周后我不会接受自己的答案,看看是否有人能发布更好的答案。

问题出在代码页上。我将 Windows 10 的默认显示语言设置为简体中文,代码页为 GBK(936)。因此,在cmdWindows 中,系统打算以中文显示所有信息。实际上,我们看到,在我发布的问题的第一张图片中,帮助信息的开头几行都显示为中文。

要显示中文,您必须找到合适的字体来提供中文字符的提示信息。显然,Windows 会预先检查所有字体,以查看其对当前代码页字符的支持。当它发现设置的字体不支持中文时,它将放弃该字体并恢复为默认字体。而且,它将从默认面板中的字体设置列表中删除该字体。 Yahei Consolas Hybrid支持英文和中文,因此它可以在默认和属性设置的列表中显示。Monaco但是Dejavu,和从默认面板中消失了,但保留在属性面板中。

为什么它不清除属性字体列表?因为正如注释所说,“属性”适用于当前cmd窗口/会话,而“默认”设置控制所有后续cmd会话,例如,更全局。它确保如果用户在运行时更改代码页,则不必再次检查字体列表的属性,用户可以直接更改字体。这正是我的情况。我必须说,Windows 在这里做了很多幕后工作。

您可以在下面的屏幕截图中看到,我使用 更改了代码页,chcp 1252并且字体更改立即生效。就是Monaco现在。

在此处输入图片描述

因此,问题变成了:“如何在启动窗口时更改代码页cmd?” 我发现了一个非常有用的问题:

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

我将修改简化为:

  1. 创建一个.reg文件,并随意命名。
  2. 将这些行复制到文件中并保存。

只需输入:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor]
"Autorun"="chcp 1252>>nul"

1252可以是其他值。>>nul是为了避免打印

Active code page: 1252

每次启动时cmd

  1. 运行该文件以导入设置。
  2. 运行cmd。现在您可以在属性中轻松设置字体。(我注意到,如果您从桌面上的链接运行,字体是Simsun,但如果您从任务栏中的锚点运行,字体是Yahei Consolas Hybrid。我不知道为什么。但您可以更改字体。

不过,在 Default 中设置默认字体对 的后续会话不起作用cmd。它仍然属于Simsun,所以我无法实现“打开 cmd 并使用Monaco字体”。我认为这是因为Windows 检查带有字体的当前语言代码页,而不是带有字体的“自动运行”代码页。,因此更改默认语言是可行的,但这不是我想要的。我仍然在讨论这个话题。

答案2

现在在区域设置(区域/管理[选项卡名称],然后更改系统区域设置...)中,有一个复选框,上面写着“Beta:使用 Unicode UTF-8 提供全球语言支持”。选中它,它可能会起作用。我目前使用的是 Windows 10 版本 17134.165。

相关内容