时间:2021-07-01 10:21:17 帮助过:13人阅读
Fedora 22系统的默认字体是思源黑体字,应该说这个字体是比较先进,也比较美观的字体。只是Java程序好像不兼容思源黑体字,那么Linux系统Java不兼容思源黑体字的解决方法是什么呢?
尽管 Oracle 官方文档上说从 Java 7 开始已经能够支持 OTF 字体,比如 createFont 等方法仍然可以用 TRUETYPE_FONT 等参数提供对 OTF 字体的支持,但思源黑体在 Java 程序中显示汉字会出现方块,特别是简体中文语言环境下,字体看似使用的思源黑体台湾香港地区繁体版本,并没有使用简体中文版本,一些字显示不出来,以方块代替了。
在没有多余精力去研究字体问题的情况下,目前猜测是因为思源字体以 OTF 格式发布并且内部还存在 Hinting 信息的问题导致 Java 识别存在问题,另外字体的语言编码可能也是个问题。暂时的替代方法是,最好使用不带 Hinting 信息的 TTF 字体,比如 XHei、明兰等社区制作的字体(不含 Hinting 信息),另外建议删除思源黑体软件包安装时自带的 fontconfig 配置,然后直接修改 fontconfig 中的 65-nonlatin.conf 等文件,自定义你所使用的替代字体的匹配优先级等等。
以上就是Linux系统Java不兼容思源黑体字的解决方法了,如果实在不行,那么只能建议换一个非OTF格式的字体了。具体的方法可以参考:如何在Linux上添加自定义字体。