現在有需求生成一個二維碼,并且有一段文本說明,但是使用awt.font來生成中文時,一直存在亂碼的問題。網上的解決辦法有幾種,但是在centos上親測有用的就是如下的方法。
Java代碼如下:new java.awt.Font("宋體",Font.BOLD,13);
1,從windows上拷貝simsun.ttc宋體檔案(有的說改字尾為ttf,沒有試),拷貝到/usr/share/fonts下,可以建立一個檔案夾,比如我建立的是chinese,即路徑為/user/share/fonts/chinese
2,上傳simsun.ttc到/usr/share/fonts/chinese下,執行chmod 777 simsun.ttc (修改執行權限)
3,在/usr/share/fonts/chinese路徑下執行fc-cache -fv,安裝字型到系統
4,執行fc-list能夠看到已經安裝過的字型,能夠看到安裝的字型。
5,重新開機tomcat即可。
之前的思路一直是想使用java.awt.Font的public static Font createFont(int fontFormat,File fontFile) 方法來做,即傳入一個ttf檔案(把simsun.ttc改名為simsun.ttf,這個地方一定要求是ttf字尾不然會報錯),因為這樣畢竟是api代碼層級的實作,不用改動伺服器環境,但是一直不成功,最後隻能改伺服器配置。
另外網上很多說的在$JAVA_HOME/jre/lib/fonts建立fallback的方式,一直嘗試也沒有成功。
因為疊代催得緊,也沒有時間細細研究了,使用了比較簡單的辦法完成了,之後再考慮。
參考:http://blog.csdn.net/typa01_kk/article/details/50615453
本文轉自 斯然在天邊 51CTO部落格,原文連結:http://blog.51cto.com/13172906/1966886,如需轉載請自行聯系原作者