我的应用程序使用 Pango ,开罗和GTK3。其中一些字符串包含一些特殊字符,包括一个不在Unicode基本平面中的字符。在Linux上,这一点刚刚起作用,但在Windows上,它找不到特殊字符,而是显示未知字符框。
我用Roboto来做文本,但不包括这些字符。用诡计我 found here 我发现在Linux上 fontconfig 库故障转移到 Symbolica 或 STIX .
FC\u DEBUG=4 pango view-q-t'{character}'2>&1 | grep-o'系列:“[^”]+'| cut-c 10-| tail-n 1
我试过在Windows机器上安装这些字体,但没有乐趣。
我的Windows计算机正在运行 Mingw-w64 随附的 /etc/fonts 包含fontconfig文件,但它们似乎做得不对。不幸的是 pango-view
/etc/fonts
pango-view
更新: 我已经准备好了 AttrFallback
我仍然不知道为什么这在Windows和Linux中的工作方式不同,但答案却隐藏在 Pango.FontDescription.set_family
Pango.FontDescription.set_family
在pango.FontDescription的某些用法中,也可以在此字段中使用逗号分隔的姓氏列表。
当我在逗号分隔的列表中添加所需的回退字体时,它起了作用。