centOS下java生成图片中文乱码问题
今天测试项目上线,其中有这样一个功能点:上传ppt转为图片。但是却出现了乱码,刚开始怀疑是系统编码的问题,但是:
echo $LANG
发现是utf-8,好像没什么问题,继续查找程序中的日志信息,发现从ppt中取出来的内容没有乱码,查看代码发现是生成图片时使用宋体字,猜测是字体没有安装。
于是通过:
fc-list :lang=zh
显示为空。
查看自己的linux服务器时发现:
/usr/share/fonts/dejavu/SIMSUN.TTC: SimSun,宋体:style=Regular,常规
/usr/share/fonts/dejavu/SIMSUN.TTC: NSimSun,新宋体:style=Regular,常规
于是开始安装中文字体,安装过程也很简单,记录一下。
安装的思路是将windows中的字体拷贝到centos中,然后执行几个命令即可。
windows xp中字体位于C:/WINDOWS/Fonts目录中,每中字体一个文件,比如simsun.ttc
centos中的字体文件位于/usr/share/fonts/,每种字体一个目录,比如wqy-zenhei
安装过程是,首先在centos的/usr/share/fonts/目录下新建simsun目录
然后将windows中的simsun.ttc拷贝到/usr/share/fonts/simsun目录
#mkdir /usr/share/fonts/simsun
##拷贝windows中的simsun.ttc到/usr/share/fonts/simsun/
然后执行以下命令
#cd /usr/share/fonts/simsun
#mkfontscale
#mkfontdir
#fc-cache -fv
执行以下命令让字体生效
#source /etc/profile
重启。
执行字体查询命令时就和上面有了一样的结果。启动项目发现乱码问题解决!