![对于非 Unicode 程序,在注册表中添加 Microsoft 控制台 (CMD) 字体不适用于东亚语言](https://linux22.com/image/1360049/%E5%AF%B9%E4%BA%8E%E9%9D%9E%20Unicode%20%E7%A8%8B%E5%BA%8F%EF%BC%8C%E5%9C%A8%E6%B3%A8%E5%86%8C%E8%A1%A8%E4%B8%AD%E6%B7%BB%E5%8A%A0%20Microsoft%20%E6%8E%A7%E5%88%B6%E5%8F%B0%20(CMD)%20%E5%AD%97%E4%BD%93%E4%B8%8D%E9%80%82%E7%94%A8%E4%BA%8E%E4%B8%9C%E4%BA%9A%E8%AF%AD%E8%A8%80.png)
LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont中的已知注册表设置
Value Name
允许您通过将设为 的倍数0
并将设为字体名称来添加字体Value Data
。但当东亚语言(例如韩语)用于非 Unicode 程序时情况并非如此。我只有Raster Fonts
和굴림체
(韩语字体)作为我的选项。我在注册表中有以下值:
0 Lucida Console
00 Consolas
932 *MS ゴシック
936 *新宋?
949 *굴림체
950 *細明體
所以我有英语、日语、韩语和中文的字体。
在命令提示符属性下。这是我所拥有的:
在非 Unicode 程序中是否可以使用其他字体,Consolas
同时仍使用东亚语言?
答案1
字体必须满足某些条件才能在控制台窗口中使用。就您而言,考虑到您对东亚环境的偏好,Consolas 不是一个选择。
标准全部列出在此知识库文章中但是为了防止链接失效,我还是总结一下(微软喜欢重新排列和破坏所有的链接):
字体必须满足以下条件才可在命令会话窗口中使用:
- 字体必须是等宽字体。
- 字体不能是斜体字体。
- 字体不能有负的 A 或 C 空格。
- 如果是 TrueType 字体,则必须是
FF_MODERN
。- 如果不是 TrueType 字体,则必须是
OEM_CHARSET
。针对亚洲设施的附加标准:
- 如果不是 TrueType 字体,则字体名称必须为“Terminal”。
- 如果它是亚洲 TrueType 字体,它也必须是亚洲字符集。
后半部分是 Consolas 与您不相容的地方。Consolas 是一种 TrueType 字体,但不是带有亚洲字符集的字体。它没有您需要的所有字形;它只有拉丁文、希腊文和西里尔文。
所以你做的一切都是正确的。如果某些字体不符合要求的标准,它们就不会作为有效选项显示在列表中。