最近项目使用了spring boot构建服务,项目跑在Centos6和Centos7的系统上,项目中有一个使用JAVA生成png图片时中文会造成乱码。
由于网上找了N多的资料,最终才把问题解决。很多说把字体放到Jre下的fonts目录下,但是未能见效。而且Centos6和Centos7的系统也有一些不同,所以记录一下:
Centos6解决方法:
yum install fontconfig-devel -y
yum groupinstall chinese-support -y
centos7系统:
yum install fontconfig-devel -y
yum groupinstall fonts -y
检查是系统中的字体列表,当看到有中文字体的时候就可以了。
fc-list[此命令来自上面的fontconfig工具包],如果不安装就没有fc-list命令而且在/usr/share/目录下也没有fonts目录。
[root@Tomcat fonts]# fc-list
AR PL UMing TW:style=Light
AR PL UMing HK:style=Light
FangSong,仿宋:style=Regular,Normal,oby?ejné,Standard,Κανονικ?,Normaali,Normál,Normale,Standaard,Normalny,Обычный,Normálne,Navadno,Arrunta
AR PL UMing CN:style=Light
Microsoft YaHei,微软雅黑:style=Regular,Normal,oby?ejné,Standard,Κανονικ?,Normaali,Normál,Normale,Standaard,Normalny,Обычный,Normálne,Navadno,Arrunta
SimSun\-ExtB:style=Regular,Normal,oby?ejné,Standard,Κανονικ?,Normaali,Normál,Normale,Standaard,Normalny,Обычный,Normálne,Navadno,Arrunta
STFangsong,华文仿宋:style=Regular
AR PL UKai TW MBE:style=Book
AR PL UKai CN:style=Book
AR PL UKai HK:style=Book
AR PL UKai TW:style=Book
WenQuanYi Zen Hei,文泉?正黑,文泉驿正黑:style=Regular
Microsoft YaHei,微软雅黑:style=Bold,Negreta,tu?né,fed,Fett,?ντονα,Negrita,Lihavoitu,Gras,Félk?vér,Grassetto,Vet,Halvfet,Pogrubiony,Negrito,Полужирный,Fet,Kal?n,Krepko,Lodia
WenQuanYi Zen Hei Mono,文泉?等?正黑,文泉驿等宽正黑:style=Regular
AR PL UMing TW MBE:style=Light
WenQuanYi Zen Hei Sharp,文泉???正黑,文泉驿点阵正黑:style=Regular
直接解决方法:
从Windows系统中复制几个字体:/usr/share/fonts/ 到此目录下;
[root@Tomcat fonts]# ls -lh
total 99M
drwxr-xr-x 2 root root 4.0K Nov 21 19:01 cjkuni-ukai
drwxr-xr-x 2 root root 4.0K Nov 21 19:01 cjkuni-uming
-rw-r--r-- 1 root root 29M Nov 30 18:48 fonts.tar.gz
-rw-r--r-- 1 root root 14M Jun 11 2009 msyhbd.ttf
-rw-r--r-- 1 root root 21M Jun 11 2009 msyh.ttf
-rw-r--r-- 1 root root 11M Jun 11 2009 simfang.ttf
-rw-r--r-- 1 root root 15M Jun 11 2009 simsunb.ttf
-rw-r--r-- 1 root root 11M Oct 29 2002 STFANGSO.TTF
drwxr-xr-x 2 root root 4.0K Nov 21 19:01 wqy-zenhei
配置完成后只需要把项目重新启动一下即可看到效果。