问题描述:
安装了win11的us版本后,发现中文字体总是怪怪的,有几个字特别宽,排列不整齐,并且子都比较细
原因:注册表中的字体映射(fontlink)有误
注册表,找到Segoe UI
代码语言:javascript复制ComputerHKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionFontLinkSystemLink
win11英文版的默认字体是Segoe UI,其初始映射关系如下:(图片是网上偷的)
fontlink原理:当Windows需要在连接字体中搜索所需的字体信息的时候,它会在上面提到的这个键值所定义的字体列表中从上而下搜索,直到找到需要的字符信息。
第一个字体TAHOMA是早期版本的 Windows默认字体,显示英文没毛病
第二个字体MEIRYO是日语字体明瞭体(メイリオ,英文转写为Meiryo),当我需要显示中文字符时,系统根据字体列表的顺序会优先寻找日语中的汉字来做显示,因此就出现了显示效果奇怪的现象。
解决办法:修改映射
windows中文版默认的中文字体是微软雅黑(英文字体还是Segoe UI)
把微软雅黑放到列表的首位,在显示中文时就会优先从这里查找汉字显示,效果就和win中文版一样了。
重启系统后中文显示恢复正常。
其他信息补充:
windows不同语言默认字体:
早期版本的 Windows,默认字体是 Tahoma。简体中文下则是宋体。
大佬的文章:利用 Fontlink 完美解决在英文Windows上中文显示高矮不一 的问题 (shajisoft.com)
另一篇文章,我和他想的一样,但是他后面修改另外两个字体我暂时不理解。英文版 win10 中文字体不正常 - 知乎 (zhihu.com)