項目中包含了一項生成JPG圖片的功能,該功能需要使用JAVA的Graphics2D動態生成圖片中的文字,原來在Windows平台中沒有發現問題,但是遷移至Linux平台后發現生成的中文變成了亂碼。
百度發現是因為Linux下沒有相應的字體引起的,解決辦法如下:
- 1、找到Windows平台下的字體文件;
常規路徑為:C:\Windows\Fonts
宋體文件為:simsun.ttc
楷體文件為:simkai.ttf
- 2. 放到 /usr/share/fonts目錄下
mkfontscale
mkfontdir
fc-cache
-----------------------------Exception Info----------------------
----net.sf.jasperreports.engine.util.JRFontNotFoundException: Font ‘瀹嬩綋‘ is not available to the JVM. See the Javadoc for more details.
-----------font xx not found in linux environment
---解決方案具體總結有兩種,第一種不受部署環境的限制,第二種受部署環境的限制,沒部署到一個地方的Linux環境都需要去設置,不符合松耦合的軟件設計原則,
故建議使用第一種
第一種方式,加入字體jar
具體步驟:在ireport中導入需要的字體文件,然后導入成jar包,添加到項目的classPath目錄下,並build path 加進去
第二種方式,在linux服務上添加需要的字體,因為默認windows是使用gb編碼(GB18050或者GB2312)的而Linux默認是使用Unicode編碼的
把windows的中文字體(一般在C:\Windows\Fonts目錄),復制到linux的/usr/share/fonts/chinese/TrueType目錄下即可
-----例如:下面以仿宋字體為例
安裝步驟:
1、simfang.ttf拷貝到/usr/share/fonts下面
2、依次執行下列命令
mkfontscale
mkfontdir
fc-cache
simfang.ttf這個是字體文件,在C:\WINDOWS\Fonts這個目錄中有
linux下jdk中文亂碼
參考博客地址:http://blog.csdn.net/a19881029/article/details/9031743
原文:http://yangsj.blog.51cto.com/8702844/1697065