评论区有位同事名字里的「垚」显示成方框,控制台没有任何报错,同一段文字换成系统字体就正常,正文常用字一个都不缺。碰到这种情况,我一般先确认改动有没有真的生效。

原因不复杂,做子集时按常用字表裁剪,只保留了三千一百多个字,生僻字和一部分姓氏直接不在字体文件里。浏览器找不到字形就退回默认字体或者画方框,字数统计上完全看不出来。

「字体子集缺字」这类改动最怕改一半,回滚脚本先准备好,再动生产。改完顺手把文档补一句,省得下次自己重新推一遍。

pyftsubset font.ttf --text-file=chars.txt \
  --flavor=woff2 --output-file=font.subset.woff2
# chars.txt 用站内正文去重生成

监控和日志的时间要对上,时区不一致会多绕很大一圈。

具体做法是,把站内真实出现过的字符导出 去重后生成字符集 别只按固定字表切;子集化后跑一遍比对 把缺的字补进字符集重新生成;给字体留 unicode-range 分段 生僻字那段落回退到系统字体 至少不显示方框。

最后用这个标准收尾,生僻姓名能正常显示,补字后再跑一次比对,缺失字符数为 0。

作者 9823189