问题描述
一些 ttf 字体在制作的时候,考虑的只是文字的显示排版,没有考虑平台兼容的问题,会导致同一个字体在不同平台上显示不同,例如:
- Web、Android、iOS 上文字均能正常显示 ttf 字样的样式,Windows 平台上显示的是系统字体:Cocos 中文论坛求助
- 同个字体加上描边后在微信小游戏上,Android 平台文字的描边会被切割掉一部分,iOS 文字+描边显示正常:Cocos 中文论坛求助
问题思路
- 先测试问题字体看问题能否复现,如果能复现;
- 切换其他字体做相同条件下的测试,看能否复现;
- 如果只是个别字体能复现,就可以从字体文件本身来着手排查;
结合经验判断,每个平台对字体的家族名( font family) 和 字体文件名(font name)的解析不同,window 上要求 font family 和 font name 要一致,ios 和 安卓在小游戏平台上有时候会对字体名是否含特殊符号解析有区别,导致两个平台一个显示正常,一个不正常;
所以最好是 font family 和 font name 名称相同,且不含特殊符号,当然能不用中文命名就不用;