热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

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

从Fedora22开始,系统自带思源黑体(SourceHanSans),不再使用文泉驿正黑或微米黑(但仍然可以通过dnf在线安装)。思源黑体采用OTF字体格式(OpenTypeFont),技术上是TrueType字体的更为先进的升级版。但经过反复测试发现,Java对OTF字体的支持似乎存在问题。尽管Oracle官方文档上说从Java7开始已经能够支持

从 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 等文件,自定义你所使用的替代字体的匹配优先级等等。

更多Fedora相关信息见Fedora 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=5

本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-09/123105.htm


推荐阅读
author-avatar
打工仔成军军
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有