最近在工作中連續碰到開發人員反饋項目在linux系統部署上線之後,通過windows浏覽器在線預覽文件時,出現中文亂碼的情況,所以針對這個問題做了一個記錄。
中文亂碼
出現這個問題其實就是你的linux系統沒有安裝中文字體導緻,我們隻要安裝上中文字體即可解決
第一步:首先在linux系統中查看系統預裝的字體
[root@localhost ~]# fc-list
如果沒有這個命令,執行如下命令安裝
yum -y install fontconfig mkfontscale(CentOS)
apt-get install -y fontconfig xfonts-utils (Ubuntu)
安裝完成就可以查看系統預裝的字體
我們發現系統沒有預裝中文字體,那麼我們隻需安裝中文字體即可,如果有預裝中文字體,運行以上命令後會出現中文字體
我們也可以直接用以下命令查看是否有安裝中文字體
[root@localhost ~]# fc-list :lang=zh
命令執行之後,如果裝有中文字體則會輸出所安裝的中文字體名稱,沒有安裝中文字體,界面則沒有任何輸出
裝有中文字體的界面輸出
未裝有中文字體的界面輸出
第二步:安裝中文字體
1、将Win字體存放路徑 C:\windows\Fonts下的你需要的中文字體複制到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@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應該就沒有問題了
中文正常顯示
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!