awt.font在centos上中文亂碼的問題
現在有需求生成一個二維碼,並且有一段文本說明,但是使用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
awt.font在centos上中文亂碼的問題