Fontlink(注册表中的FontLink / SystemLink)在Windows 10 x64中无法按预期工作


13

我想要的是

我将其Consolas用作Notepad ++的默认字体,但是在使用时,我希望中文和日语字符和符号的外观更好Consolas

根据MSDN文章,我可以将多个字体链接到,Consolas以便它可以显示它自己不支持的字符。

目标

  • 使用字体显示拉丁字符 Consolas
  • 使用显示中文和日文字符 Microsoft YaHei
  • 显示YaHei无法使用的符号Meiryo
  • 让系统处理Meiryo无法显示的其余字符

实现目标的步骤

  1. 添加一个REG_MULTI_SZ条目ConsolasHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink
  2. 设置值Consolas

    MSYH.TTC,Microsoft YaHei,128,96
    MSYH.TTC,Microsoft YaHei
    MEIRYO.TTC,Meiryo,128,85
    MEIRYO.TTC,Meiryo
    
  3. 注销Windows,然后再次登录

Windows 7中的实际结果

  1. 拉丁字符(0-9,az,AZ)和常用符号(;:'“等)使用 Consolas
  2. 中文和日文字符使用 Microsoft YaHei
  3. 特殊符号使用 Meiryo
  4. 使用系统默认值(idk是)显示以上字体不支持的其他字符和符号。

Windows 10中的实际结果

  1. 拉丁字符(0-9,az,AZ)和常用符号(;:'“等)使用 Consolas
  2. 中文和日文字符使用 Microsoft YaHei
  3. 特殊符号使用 Segoe UI Symbol
  4. 使用系统默认值显示以上字体不支持的其他字符和符号

附加信息

(我需要10名代表才能发布更多链接和图片,因此请点击图片链接查看测试案例结果屏幕截图,然后复制/粘贴url文本以自己访问网站)

这是一个测试,旨在了解上述字体的字符覆盖率(以及更多)

使用的工具

  • 记事本: %WINDIR%/Notepad.exe
  • BabelMap: http://www.babelstone.co.uk/Software/BabelMap.html
  • 测试字符串: 我风おA☃

    我(\u6211): A character available in both Chinese and Japanese
    风(\u98ce): A Chinese only character
    お(\u304a): A Japanese only character
    A(\u0041): A Latin character
    ☃(\u2603): A unicode symbol
    

测试步骤

  1. 下载BabelMap,打开它,然后将测试字符串复制到 Edit Buffer
  2. 选择Single Font单选按钮
  3. 选中Simple Rendering复选框
  4. 通过单击右侧的下拉框来选择任何字体 Single Font
  5. 观察中的字符字形 Edit Buffer
  6. Consolas如上所述设置字体链接,注销/登录生效
  7. 打开Notepad.exe,打开Format > Fonts菜单将字体设置为Consolas
  8. 将测试字符串粘贴到然后观察

测试结果

测试用例结果比较

测试结果说明

  • Microsoft YaHei 无法显示雪人符号
  • Meiryo 没有汉字
  • Segoe UI Symbol 仅包含符号
  • Yu Gothic与相似Meiryo但外观不同
  • Consolas 专为拉丁文字而设计。
  • 输入的文字Notepad.exe使用3种不同的字体显示:

      我风お: Microsoft YaHei
      A: Consolas
      ☃: Segoe UI Symbol
    

    您可以肯定地说是Segoe UI Symbol因为那些雪人在不同的字体上有很大的不同

    但是,在这种情况下,我们希望Notepad.exe使用以下字体显示这些字符:

      我风お: Microsoft YaHei
      A: Consolas
      ☃: Meiryo
    

问题

  • 为什么Meiryo我们在fontlink注册表中设置的设置被完全忽略?
  • 如何在Windows 10中实现目标?

1
MEIRYO.TTCWindows 10安装中是否缺少文件?
HackSlash


根据一份报告KB4476976解决了一些字体问题。你有安装吗?
harrymc '19

Answers:


1

微软已决定在Windows 10中删除几种字体,其中一种是Meriyo

https://docs.microsoft.com/zh-cn/windows/deployment/windows-10-missing-fonts

可以通过观察HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ FontLink \ SystemLink来确认

默认情况下,它必须在Windows 7中存在,而在Windows 10中则不会存在

您可以通过以下任一步骤在计算机上安装Meriyo ttc文件


如果您在发布之前曾想过,您会发现如果未安装字体,则无法显示其字形test result
Byzod
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.