红联Linux门户
Linux帮助

Linux下思源黑体字体与Java之间兼容性问题的解决

发布时间:2015-09-23 19:06:36来源:linux网站作者:cyberniuniu

从 Fedora 22 开始,系统自带思源黑体(Source Han Sans),不再使用文泉驿正黑或微米黑(但仍然可以通过 dnf 在线安装)。思源黑体采用 OTF 字体格式(Open Type Font),技术上是 TrueType 字体的更为先进的升级版。但经过反复测试发现,Java 对 OTF 字体的支持似乎存在问题。


尽管 Oracle 官方文档上说从 Java 7 开始已经能够支持 OTF 字体,比如 createFont 等方法仍然可以用 TRUETYPE_FONT 等参数提供对 OTF 字体的支持,但思源黑体在 Java 程序中显示汉字会出现方块,特别是简体中文语言环境下,字体看似使用的思源黑体台湾香港地区繁体版本,并没有使用简体中文版本,一些字显示不出来,以方块代替了。


在没有多余精力去研究字体问题的情况下,目前猜测是因为思源字体以 OTF 格式发布并且内部还存在 Hinting 信息的问题导致 Java 识别存在问题,另外字体的语言编码可能也是个问题。暂时的替代方法是,最好使用不带 Hinting 信息的 TTF 字体,比如 XHei、明兰等社区制作的字体(不含 Hinting 信息),另外建议删除思源黑体软件包安装时自带的 fontconfig 配置,然后直接修改 fontconfig 中的 65-nonlatin.conf 等文件,自定义你所使用的替代字体的匹配优先级等等。


彻底解决Ubuntu 1404中文显示的问题:把Droid Sans用思源黑体取:http://www.linuxdiyf.com/linux/11100.html

如何给CentOS安装字体库:http://www.linuxdiyf.com/linux/13688.html

ubuntu14.04中文楷体变默认字体:http://www.linuxdiyf.com/linux/13356.html

Ubuntu 15.04/14.10/14.04下安装字体编辑器Birdfont 2.6:http://www.linuxdiyf.com/linux/11713.html

在ubuntu 15.04下安装字体及设置字体:http://www.linuxdiyf.com/linux/11653.html