现在有需求生成一个二维码,并且有一段文本说明,但是使用awt.font来生成中文时,一直存在乱码的问题。网上的解决办法有几种,但是在centos上亲测有用的就是如下的方法。

Java代码如下:new java.awt.Font("宋体",Font.BOLD,13);

1,从windows上拷贝simsun.ttc宋体文件(有的说改后缀为ttf,没有试),拷贝到/usr/share/fonts下,可以新建一个文件夹,比如我创建的是chinese,即路径为/user/share/fonts/chinese

2,上传simsun.ttc到/usr/share/fonts/chinese下,执行chmod 777 simsun.ttc (修改执行权限)

3,在/usr/share/fonts/chinese路径下执行fc-cache -fv,安装字体到系统

4,执行fc-list能够看到已经安装过的字体,能够看到安装的字体。

5,重启tomcat即可。


之前的思路一直是想使用java.awt.Font的public static Font createFont(int fontFormat,File fontFile) 方法来做,即传入一个ttf文件(把simsun.ttc改名为simsun.ttf,这个地方一定要求是ttf后缀不然会报错),因为这样毕竟是api代码层级的实现,不用改动服务器环境,但是一直不成功,最后只能改服务器配置。


另外网上很多说的在$JAVA_HOME/jre/lib/fonts创建fallback的方式,一直尝试也没有成功。

因为迭代催得紧,也没有时间细细研究了,使用了比较简单的办法完成了,之后再考虑。

参考:http://blog.csdn.net/typa01_kk/article/details/50615453