Windows – Fontlink (FontLink/SystemLink in registry) Is Not Working As Expected In Window 10 x64

fontswindows 10windows-registry

What I Want

I use Consolas as the default font of my Notepad++, but I want better appearance of Chinese and Japanese characters and symbols when using Consolas.

According to The MSDN article, I can link multiple fonts to Consolas so it can display characters that it doesn't support on its own.

The Goal

  • Display Latin characters using font Consolas
  • Display Chinese and Japanese characters using Microsoft YaHei
  • Display symbols that YaHei can't handle using Meiryo
  • Let system handle the rest characters that Meiryo can't display too

Steps to Achieve The Goal

  1. Add a REG_MULTI_SZ entry Consolas in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink
  2. Set the value of Consolas:

    MSYH.TTC,Microsoft YaHei,128,96
    MSYH.TTC,Microsoft YaHei
    MEIRYO.TTC,Meiryo,128,85
    MEIRYO.TTC,Meiryo
    
  3. Log off Windows, then log in again

Actual Result in Windows 7

  1. Latin characters (0-9,a-z,A-Z) and frequently used symbols (;:'", etc) are displayed using Consolas
  2. Chinese and Japanese characters are displayed using Microsoft YaHei
  3. Special symbols are displayed using Meiryo
  4. Other characters and symbols none of fonts above supports are displayed using system defaults (idk what that is)

Actual Result in Windows 10

  1. Latin characters (0-9,a-z,A-Z) and frequently used symbols (;:'", etc) are displayed using Consolas
  2. Chinese and Japanese characters are displayed using Microsoft YaHei
  3. Special symbols are displayed using Segoe UI Symbol
  4. Other characters and symbols none of fonts above supports are displayed using system defaults

Additional Info

(I need 10 rep to post more links and image, so please click the image link to view the test case result screenshot and copy/paste the url text to visit the site yourself)

Here is a test trying to understand the character coverage of fonts mentioned above (and more)

Tool used

  • Notepad: %WINDIR%/Notepad.exe
  • BabelMap: http://www.babelstone.co.uk/Software/BabelMap.html
  • Test string: 我风お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
    

Step to Test

  1. Download BabelMap, open it, then copy the test string into Edit Buffer
  2. Select Single Font radio button
  3. Check Simple Rendering checkbox
  4. Select any font by click the dropbox right to the Single Font
  5. Observe the character glyph in Edit Buffer
  6. Setup fontlink for Consolas as mentioned above, log off/in to take effect
  7. Open Notepad.exe, open Format > Fonts menu to set font to Consolas
  8. Paste test string in then observe it

Test Result

Test case result comparison

Test Result Explanation

  • Microsoft YaHei can't display the snowman symbol
  • Meiryo don't have Chinese characters
  • Segoe UI Symbol contains only symbols
  • Yu Gothic is similar to Meiryo but looks different
  • Consolas is designed only for Latin script.
  • Text in Notepad.exe is displayed using 3 different fonts:

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

    You can tell that is surely the Segoe UI Symbol because those snowman are very different in different fonts

    However, in this case, we expected Notepad.exe display those characters using fonts like this:

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

Questions

  • Why Meiryo we set in the fontlink registry is completely ignored?
  • How to achieve The Goal in Windows 10?

Best Answer

Microsoft has decided to remove several fonts in Windows 10 one of them being Meriyo

https://docs.microsoft.com/en-us/windows/deployment/windows-10-missing-fonts

This can be confirmed by observing HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink

It must be there in Windows 7 by default and won't be there in Windows 10

You can install Meriyo ttc file on your machine by either of any steps

Related Question