Fontlink (FontLink / SystemLink в реєстрі) працює не так, як очікувалося у вікні 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відображається за допомогою трьох різних шрифтів:

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

    Ви можете сказати, що це, безумовно, Segoe UI Symbolтому, що ці сніговики дуже різні в різних шрифтах

    Однак у цьому випадку ми очікували Notepad.exeвідображення цих символів за допомогою таких шрифтів:

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

Запитання

  • Чому Meiryoми встановили в реєстр шрифтових посилань повністю ігнорується?
  • Як досягти Цілі в Windows 10?

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 на свій комп'ютер будь-яким з кроків


Якщо ви коли-небудь замислюєтесь перед публікацією, ви помітите, що якщо шрифт не встановлений, жоден його гліф не може відображатися як те, що було показано в test result.
Бизод
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.