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แสดงขึ้นโดยใช้แบบอักษร 3 แบบ:

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

    คุณสามารถบอกได้ว่าเป็นSegoe UI Symbolเพราะมนุษย์หิมะเหล่านั้นแตกต่างกันมากในแบบอักษรที่แตกต่างกัน

    อย่างไรก็ตามในกรณีนี้เราคาดว่าจะNotepad.exeแสดงตัวอักษรเหล่านั้นโดยใช้แบบอักษรดังนี้:

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

คำถาม

  • ทำไมMeiryoเราตั้งค่าในการลงทะเบียน fontlink อย่างสมบูรณ์?
  • จะบรรลุเป้าหมายใน 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

สิ่งนี้สามารถยืนยันได้โดยการสังเกต NT \ CurrentVersion \ FontLink \ SystemLink HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows

จะต้องมีอยู่ใน Windows 7 โดยค่าเริ่มต้นและจะไม่อยู่ใน Windows 10

คุณสามารถติดตั้งไฟล์ Meriyo ttc บนเครื่องของคุณโดยทำตามขั้นตอนใด ๆ


test resultถ้าคุณเคยคิดก่อนโพสต์คุณจะสังเกตเห็นว่าถ้าตัวอักษรที่ไม่ได้ติดตั้งไม่มีสัญลักษณ์ที่สามารถแสดงเป็นสิ่งที่ถูกนำมาแสดงใน
Byzod
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.