日文页面上骨、直、今这几个字明显是简体写法,和设计稿差一截,同一台机器换成日文系统语言后才正常。碰到这种情况,我一般先确认改动有没有真的生效。
原因不复杂,字体栈里先写了中文字体,浏览器只要命中第一个能显示汉字的字体就不再往下找,日文字形被中文字体的同码位字符顶掉。
「日文字体回退」相关的验证我通常做两遍,改完一次、隔天再看一次,确认不是临时生效。别只看报错的最后一行,往上看几行,真正的起因通常在上面。
font-family: 'Noto Sans JP', 'Hiragino Sans', sans-serif; # 日文字体必须排在中文前面 fc-list :lang=ja | head -5
同类问题如果隔一段时间又出现,多半是某个定时任务或重启流程把改动冲掉了。
具体做法是,把日文字体提到字体栈最前面 让它优先被匹配;按字符范围拆分子集 减少整个字体文件的体积;确认字体文件里确实包含日文需要的汉字字形。
最后用这个标准收尾,日文页面的汉字显示为当地字形 和设计稿看起来基本一致。
