CENTOS 7 和 JDK 新增中文字型
當運維總是遇到各種奇奇怪怪的問題,比如新的 JAVA 專案上線,login 介面有個驗證碼,結果部署後發現,要麼顯示的奇奇怪怪,要麼壓根不顯示。
或者在使用一些開源的 JAVA 專案的時候,部署之後出現亂碼,然後就懵逼了。
如果你遇到這種情況,其實很多時候都是系統字型和 JDK 字型的原因,當然也不全部,比如頁面編碼,資料儲存本身就亂碼等各種問題。
這裡就是給出一種解決問題的思路,希望能夠幫到需要的同學!
環境說明名稱 | 版本 |
作業系統 | CENTOS 7 |
JDK | 7 |
遠端工具 | Xshell 5 |
對於伺服器而言,我們在安裝的時候一般都是最小化安裝,所以但部分都不會關注字型這方面帶來的影響,這裡我們執行命令看下當前系統的字型:
fc-list
效果如圖:
可以從上圖看到,沒有任何一箇中文出現,這其實就足夠說明目前虛擬機器是沒有中文字型的,分話不多說,開始新增字型:
【1】在我們的 Windows 的 C:\Windows\Fonts 下面選擇一箇中文字型,如宋體,先拷貝到桌面,然後字型就變成了英文的:SIMSUN.TTC
備註:我這裡只是寫了 Windows 的,沒有用過 Mac 系列的 ...
【2】在伺服器上面建立相關目錄,為了便於區分,我們把目錄名字叫做 zh_CN:
mkdir /usr/share/fonts/zh_CN
【3】上傳我們的字型到該目錄下並改名為 simsun.ttf,上傳可以在 CENTOS 上面 yum 安裝 lrzsz,之後我們就能直接敲 rz 命令或者拖拽進行互動式上傳檔案了:
cd /usr/share/fonts/zh_CN mv SIMSUN.TTC simsun.ttf
【4】收集系統的字型,儲存到相關檔案,此時會在當前目錄生成 fonts.scale 檔案:
yum -y install ttmkfdir ttmkfdir-e /usr/share/X11/fonts/encodings/encodings.dir
【5】為了不重啟機器,我們手動新增配置,強迫症順便還幫他調整了一下格式:
vi /etc/fonts/fonts.conf # 內容如下 <dir>/usr/share/fonts/zh_CN</dir>
如圖:
【6】重新整理一下 cache 在檢視一下效果:
fc-cache
fc-list
如下圖:
總結:和之前相比,明顯多了兩個中文的項!
給JDK新增中文字型由於 JDK 新增中文字型比較簡單,這裡就直接給出方法:
# 進入 JDK 的目錄 cd /usr/local/jdk1.7.0_79/jre/lib/fonts # 建立目錄 mkdir fallback cd fallback # 將公共系統那個中文字型拷貝過來 cp /usr/share/fonts/zh_CN/simsun.ttf . # 生效 mkfontscale mkfontdir
執行成功後目錄下面會變成這樣:
到這裡就配置完成,如果還有問題,可以留言我們來討論一下!