明辉手游网中心:是一个免费提供流行视频软件教程、在线学习分享的学习平台!

Linux系统Java不兼容思源黑体字的处理方法

[摘要]Fedora 22系统的默认字体是思源黑体字,应该说这个字体是比较先进,也比较美观的字体。只是Java程序好像不兼容思源黑体字,那么Linux系统Java不兼容思源黑体字的解决方法是什么呢?尽管 O...

  Fedora 22系统的默认字体是思源黑体字,应该说这个字体是比较先进,也比较美观的字体。只是Java程序好像不兼容思源黑体字,那么Linux系统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上添加自定义字体


Linux是一套免费使用和自由传播的类Unix操作系统