最近在工作中连续碰到开发人员反馈项目在linux系统部署上线之后,通过windows浏览器在线预览文件时,出现中文乱码的情况,所以针对这个问题做了一个记录。
中文乱码
出现这个问题其实就是你的linux系统没有安装中文字体导致,我们只要安装上中文字体即可解决
第一步:首先在linux系统中查看系统预装的字体
[root@localhost~]#fc-list
如果没有这个命令,执行如下命令安装
yum-yinstallfontconfigmkfontscale(centos)
apt-getinstall-yfontconfigxfonts-utils(ubuntu)
安装完成就可以查看系统预装的字体
我们发现系统没有预装中文字体,那么我们只需安装中文字体即可,如果有预装中文字体,运行以上命令后会出现中文字体
我们也可以直接用以下命令查看是否有安装中文字体
[root@localhost~]#fc-list:lang=zh
命令执行之后,如果装有中文字体则会输出所安装的中文字体名称,没有安装中文字体,界面则没有任何输出
装有中文字体的界面输出
未装有中文字体的界面输出
第二步:安装中文字体
1、将win字体存放路径c:windowsfonts下的你需要的中文字体复制到linux主机上
可以通过winscp这个工具把字体先拷贝到linux的/root目录下
这里我以“宋体常规”为例子
2、在linux主机的路径/usr/share/fonts下创建一个目录,如windows,然后把字体拷贝到这个目录下
[root@localhost~]#mkdir/usr/share/fonts/windows
[root@localhost~]#cd/usr/share/fonts/windows/
[root@localhostwindows]#mv/root/simsun.ttc./simsun.ttc
[root@localhostwindows]#chmod755-r/usr/share/fonts/windows/simsun.ttc
[root@localhostwindows]#mkfontscale
[root@localhostwindows]#mkfontdir
[root@localhostwindows]#fc-cache-f-v
做完以上步骤,我们的中文字体就安装成功了,可以用以下命令查看是否安装成功
[root@localhostwindows]#fc-list:lang=zh
可以发现,出现了我们刚才复制进去的simsun.ttc中文字体了
第三步:重启openoffice服务
1、查看openoffice的进程号
[root@localhostwindows]#ps-ef|grepopenoffice
2、关闭openoffice服务
[root@localhostwindows]#kill-9进程号
3、重新启动openoffice服务(我的openoffice安装在/opt目录下)
[root@localhostwindows]#/opt/openoffice4/program/soffice-headless-accept=”socket,host=127.0.0.1,port=8100;urp;”-nofirststartwizard&
第四步:重启项目web服务
如果有tomcat或者nginx等web服务记得重启它们
到这里再试试生成pdf应该就没有问题了
中文正常显示