你安装了方正喵呜字体,打开QQ网页游戏,发现游戏里的文字依旧不是那种圆润可爱的样子,这绝对不是字体文件的问题。网页游戏有一套自己的字体调用规则,它不会因为你电脑里多装了一款字体就自动更换界面,甚至大多数情况下,它根本不会去碰你系统里的本地字体。
先看网页代码。一个界面元素的字体是通过font-family属性确定的,比如“微软雅黑, 宋体, sans-serif”。浏览器从左到右找,找不到微软雅黑就找宋体,再不行就用默认无衬线字体。这套列表里没有方正喵呜,那你的方正喵呜就算装得再好,也不会被选中。开发者为什么不用方正喵呜?因为用户电脑上没有,如果写进代码,展示效果就会千奇百怪,所以只能选那些几乎人人都有的大路货。
你以为安装好了就万事大吉,其实还有字体名称的坑。方正喵呜在Windows里可能同时存在多个名称,显示中文名“方正喵呜体”,内部英文名可能是FZXiaoMiaoTi。网页代码如果写“FZXiaoMiaoTi”,而你刚好下载的是修改过的版本,英文名变成了FZXMW,那就匹配不上。这种情况下,你的字体实际上是好的,但浏览器认为系统里不存在这个名字。查看字体的完整标识可以在“字体设置”或者注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts里看,而不是只看文件图标。
再来说QQ这个环境。QQ网页游戏不是直接用IE或Chrome运行的,很多是在QQ自带的浏览器组件里。这个组件为了稳定性和安全,往往会把字体访问限制在系统字体目录,但不会实时刷新字体缓存。你安装字体后没有重启QQ,新字体就没进入它的字体列表。你以为刷新页面就够了,实际上要彻底退出QQ再打开才行。如果还不行,可能是因为这个内置浏览器基于老版本内核,对中文字体的支持本来就很有限。
还有一种更让人无可奈何的情况,就是游戏本身用了Flash或者Unity。Flash有独立的字体支持机制,它读取字体的时候,只认英文名,而且不会立即感知你新装的字体。更关键的是,Flash中很多文字实际上是按像素位图渲染出来的,或者是预先做好的图片。游戏里的按钮、标题、徽章、数字,大部分是美术资源,静态数据,根本不属于文字,自然不会用字体渲染。只有聊天消息、任务文本这类动态内容才会调用字体,而这一类也会被游戏代码固定成系统默认字体。

此外,网页游戏为了避免不同用户看到不同排版,会直接在主样式里写死正文字体,例如强制使用宋体,甚至给服务器端渲染的界面直接生成图片。你本地装的方正喵呜,无论怎么改设置都覆盖不了,因为客户端没有权限修改游戏样式。就算你用浏览器开发者工具临时改掉font-family,也只能影响自己看,而且刷新后就变回去了。
你可以做一个测试,确认字体本身是否正常。在桌面新建一个记事本,保存为utf-8编码的html文件,内容只有一段文字,内嵌样式写“font-family:''方正喵呜体'';”,然后双击用浏览器打开。如果显示的就是方正喵呜,那就说明系统安装没问题,问题