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 what that is)

Фактический результат в 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?
Byzod
источник
1
Файл MEIRYO.TTCотсутствует в вашей установке Windows 10?
HackSlash
Согласно одному сообщению , некоторые проблемы со шрифтами были решены с помощью KB4476976 . У вас это установлено?
Harrymc

Ответы:

1

Microsoft решила удалить несколько шрифтов в Windows 10, одним из которых является Meriyo

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

Это можно подтвердить, наблюдая за HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ FontLink \ SystemLink

Он должен быть в Windows 7 по умолчанию и не будет в Windows 10

Вы можете установить Meriyo ttc файл на свой компьютер одним из следующих способов.

Miral
источник
Если вы когда-нибудь подумали перед публикацией, вы заметите, что если шрифт не установлен, ни один из его символов не может быть отображен так, как было показано в test result.
Визод