在注册表中添加 Microsoft 控制台 (CMD) 字体不适用于非 Unicode 程序的东亚语言

For*_*ker 3 windows fonts unicode command-line


LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont 中的已知注册表设置

使您可以通过具有添加的字体Value Name是的倍数,0并且Value Data是字体名称。但是当东亚语言(例如韩语)用于非 Unicode 程序时,情况并非如此。我只有Raster Fonts???(韩文字体)作为我的选择。我在注册表中有以下值:

0    Lucida Console
00   Consolas
932  *?? ????
936  *???
949  *???
950  *???
Run Code Online (Sandbox Code Playgroud)

所以我有英文、日文、韩文和中文的字体。

在命令提示符属性下。这就是我所拥有的: 命令提示符属性 - 选项 命令提示符属性 - 字体

是否可以使用其他字体,Consolas同时仍将东亚语言用于非 Unicode 程序?

Cod*_*ray 6

字体必须满足特定条件才能在控制台窗口中使用。在您的情况下,鉴于您对东亚环境的偏好,Consolas 不会成为一种选择。

这篇知识库文章中列出所有标准,但我会在链接损坏的情况下对其进行总结(Microsoft 喜欢重新排列和断开所有链接):

字体必须满足以下条件才能在命令会话窗口中使用:

  • 字体必须是固定间距字体。
  • 字体不能是斜体。
  • 字体不能有负 A 或 C 空格。
  • 如果是 TrueType 字体,则必须是FF_MODERN.
  • 如果它不是 TrueType 字体,则必须是OEM_CHARSET.

亚洲装置的附加标准:

  • 如果它不是 TrueType 字体,则字体名称必须是“终端”。
  • 如果是亚洲 TrueType 字体,则它也必须是亚洲字符集。

后一部分是Consolas 对您造成伤害的地方。Consolas 是一种 TrueType 字体,但不是具有亚洲字符集的字体。它没有您需要的所有字形;它只有拉丁文、希腊文和西里尔文。

所以你做的一切都是正确的。如果某些字体不符合要求的标准,它们将不会作为有效选项出现在列表中。