如今有需求生成一個二維碼,而且有一段文本說明,可是使用awt.font來生成中文時,一直存在亂碼的問題。網上的解決辦法有幾種,可是在centos上親測有用的就是以下的方法。java
Java代碼以下:new java.awt.Font("宋體",Font.BOLD,13);windows
1,從windows上拷貝simsun.ttc宋體文件(有的說改後綴爲ttf,沒有試),拷貝到/usr/share/fonts下,能夠新建一個文件夾,好比我建立的是chinese,即路徑爲/user/share/fonts/chinesecentos
2,上傳simsun.ttc到/usr/share/fonts/chinese下,執行chmod 777 simsun.ttc (修改執行權限)api
3,在/usr/share/fonts/chinese路徑下執行fc-cache -fv,安裝字體到系統tomcat
4,執行fc-list可以看到已經安裝過的字體,可以看到安裝的字體。服務器
5,重啓tomcat便可。ide
以前的思路一直是想使用java.awt.Font的public static Font createFont(int fontFormat,File fontFile) 方法來作,即傳入一個ttf文件(把simsun.ttc更名爲simsun.ttf,這個地方必定要求是ttf後綴否則會報錯),由於這樣畢竟是api代碼層級的實現,不用改動服務器環境,可是一直不成功,最後只能改服務器配置。字體
另外網上不少說的在$JAVA_HOME/jre/lib/fonts建立fallback的方式,一直嘗試也沒有成功。spa
由於迭代催得緊,也沒有時間細細研究了,使用了比較簡單的辦法完成了,以後再考慮。.net
參考:http://blog.csdn.net/typa01_kk/article/details/50615453