最近,一位windows用户让我们意识到,我们应用程序中的日语(和其他unicode)字符在windows下无法正确显示。他只得到了有数字的盒子。
我们使用Pango,Fontconfig / Frutype和渲染开罗。在unix(即linux和macos)中,它工作得很好。然而,在Windows下,我们似乎无法让它工作。
我认为这与字体回退/链接在windows下的工作方式有关,但我甚至不知道从何处着手使其正常工作。

最佳答案

结果发现,这个问题比预期的要简单,但在任何地方都没有很好的记录。fontconfig需要它的配置文件(fonts.conf和conf.d下的辅助配置)。在Linux中,这从来都不是问题,因为大多数(如果不是全部)发行版默认使用fontconfig,所以即使有人弄糟了它,仍然有一个系统配置可以依赖。
相比之下,windows通常不使用fontconfig,因此除非开发人员提供一组fontconfig配置文件,否则它最多只能加载指定的字体,但不能执行其他操作(如字体回退)。
解决方法是发出一个“fonts”文件夹,其中至少包含fonts.conf和conf.d中的任何适当定义,通常该文件夹应与fontconfig库位于同一文件夹中。(如果这不起作用,可以将fOntTeNosiPoad设置为“。”)
最后,除非您对配置进行了任何特殊的更改,否则您只需复制默认配置文件,从/ETC/到您的应用程序出货。

07-24 15:06