1. 程式人生 > >CENTOS 7 和 JDK 新增中文字型

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

 執行成功後目錄下面會變成這樣:

 到這裡就配置完成,如果還有問題,可以留言我們來討論一下!