我的应用程序使用Pango、Cairo 和 GTK3 显示字符串。其中一些字符串包含一些特殊字符,包括一个不在 Unicode 基本平面中的字符。在 Linux 上这只是工作,但在 Windows 上找不到特殊字符并显示未知字符框。
我使用 Roboto 作为文本,但它不包含这些字符。使用我在这里找到的一个技巧,我发现在 Linux 上,底层fontconfig库故障转移到Symbolica或STIX。
FC_DEBUG=4 pango-view -q -t '{字符}' 2>&1 | grep -o '家庭:“[^”]+' | 切-c 10- | 尾-n 1
我尝试在 Windows 机器上安装这些字体,但没有任何乐趣。
我的 Windows 机器正在运行包含 fontconfig 文件的Mingw-w64,/etc/fonts
但它们似乎没有做正确的事情。不幸的是pango-view
,似乎并没有注意那里的 FC_DEBUG 环境变量,所以我不知道它在做什么。
如何告诉 Windows 上的 fontconfig 从哪里获取 Roboto 不提供的代码点的字形?
更新:我已将相关字符串的AttrFallback设置为 True,以防万一 Pango 构建在 Linux 和 Windows 上对此进行不同处理。仍然没有运气。