更新 (2022年3月底)
在一个月前左右我去跟微软工程团队的工作人员反馈了Windows 11任务栏预览窗口标题是宋体的问题,并且回答我已提交。在一个月后的Dev 22581.1版本里微软真的修复了!!!
为什么Windows里的字体这么不统一?别的系统就没这个问题?
历史遗留问题,很多上古的软件框架都都是将宋体作为Windows默认中文字体的,毕竟微软雅黑这种平滑的字体是直到Windows Vista才引入的。
然而微软为了兼容性选择了去包容而没有选择直接替换掉界面内的宋体,这样可以保证上古软件在新版Windows上的界面不会显示错位(不像苹果因为生态封闭因此可以命令厂商更新,旧应用直接不让你用)
为什么会错位呢?那是因为宋体和微软雅黑占用的文字大小其实是不一样的。这里我就不多做解释了,总之就是有些情况下会出bug(
解决?
大多数的Windows软件在加载字体时候都会经过注册表内设定的FontLink来判定备用字体,或者使用同样在注册表内的GRE_Initialize来判定默认字体是什么
什么是备用字体呢?
举个例子,这里我有个英文字体,但是这个英文字体里不包含中文部分。这时候系统或软件就会去选择一个备用字体来显示那些无法无法用当前字体显示的文字
我能不能暴力删掉宋体强行显示雅黑?
可以,对于一些程序来说确实有效且能显示成雅黑,但是还有一些程序它不认备选字体,这时候它就会直接显示豆腐块,也就是方框,就类似像这样:口口口口口口口
而且问题最严重的是:碰到打印或者学校等各种地方的文档你就完蛋了。
我能不能暴力替换宋体?
可以,比如把雅黑改个名字,然后用字体编辑器改注册名后替换。但是就如同上面所说,部分软件可能会错位。
而且同样,问题最严重的是:碰到打印或者学校等各种地方的文档你就完蛋了。
目前较好的解决方案?
嗯,其实就是我刚才提到的注册表了
🟦
🟦🟦
🟦🟦🟦
🟦🟦🟦
目前合适的解决方案
(适用于Windows Vista及以上的全部系统,说专业点就是NT6.0+)
我们按下键盘上的Win+R打开运行窗口,在当中输入regedit后回车来打开注册表编辑器
将目录切换到
计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink
提示:有地址栏的高版本Win10、11可直接在顶部的地址栏里粘贴路径并回车哟
随后我们就会看到眼花缭乱的一大堆英语字体多字符串值出现在右侧,这时候我们需要修改几个主要的字体的字体链接:Lucida Sans Unicode、Microsoft Sans Serif、Tahoma以及新建三个主要字体的字体链接(注意类型选择多字符串值):Arial、Segoe UI Variable Small、Segoe UI Variable
注:Segoe UI Variable Small、Segoe UI Variable 只需要在 Windows 11 及以上版本添加,因为这是11新加入的字体
在刚才说的需要修改的字体和创建的字体的顶部添加:
MSYH.TTC,Microsoft YaHei UI,128,96
MSYH.TTC,Microsoft YaHei UI
MSJH.TTC,Microsoft Jhenghei UI,128,96
MSJH.TTC,Microsoft Jhenghei UI
YUGOTHM.TTC,Yu Gothic UI,128,96
YUGOTHM.TTC,Yu Gothic UI
MEIRYO.TTC,Meiryo UI,128,96
MEIRYO.TTC,Meiryo UI
如果你跟我一样是强迫症,添加完成之后可以删除底下的重复行来精简注册表值,但是实测其实不删并不会出现任何问题
有空继续写,现在这样已经可以解决绝大部分宋体比如:
Win11 任务栏宋体、After Effects英文版全部版本 或 CC2017及以下中文版的宋体(CC2018及以上中文版暂时无解,被Adobe语言文件指定的宋体且有加密验证)、Premiere全版本、VEGAS全版本
OBS Studio、TeamSpeak等使用QT语言编写UI的程序未完待续,使用当前写的方法后还会是宋体。有直接改注册表的方法但是一言难尽,因为有缺陷,不完美,会造成部分软件比如Winaero Tweaker主程序工具栏图标、Notepad++安装包的图片被拉伸。
这里可以通过改软件的主题来解决,OBS和TeamSpeak均支持自己改qss主题文件。开坑(
(PS:论坛的主题帖是可以编辑的、更新还是在层楼里直接更新)