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