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


13

我想要的是

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

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

目标

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

实现目标的步骤

  1. 添加一个REG_MULTI_SZ条目Consolas中HKEY_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.