开发过ios应用的Coder可能会注意到一个奇怪的现象,就是在模拟器上,搜索框内的中文字或者应用的中文名会显示的很奇怪。
比如"房","径","类"等字就跟我们平常见到的相差很大。
好吧,在设置中把模拟器语言设成简体中文就一切OK了。原因就是在英文ios系统中,默认情况下日文的优先级要大于中文,如果某个字符在日文字体
中找到了,屏幕上显示的就是这个字符的日文版本。
我负责的一个跨平台应用也碰到了这个问题,应用中要用到ftgles渲染ios自带的"STHeiti-Light.ttc"(原生中文字体),但是个别字显示效果不太正常。
这次设置语言环境完全没效果。
之后查了一些freetype的相关文档,终于发现原因所在。ttc格式的字体文件是多个字体的集合,可以根据face的num_faces参数获取字体种类个数。
然后用FT_New_Face函数新建一个特定face_index(即所需字体索引值,小于字体种类数)的字体即可。这下应用中的中文字都正常了。
参考文档: 点击打开链接