ubuntu中tomcat下jsp字體呈方塊解決方法
在ubuntu現開發web項目,采用編碼GBK的發現,項目運行起來之后jsp頁面中從數據庫中拉取的數據中文字體顯示為小方塊。最終找到了解決方法。
1 首先解決java代來的字體問題,對于jdk1。6解決方法比較簡單,在$JAVA_HOME/jre/lib/fonts新建目錄fallback直接把相應的中文字體(我用的simsun.ttc),復制到該目錄下。其他版本的jdk相對比較復雜一些可以到網上搜索解決方案。
2 第一部完成之后發現,又報表聲稱圖片中的字體正常顯示,但數據中拉的中字體還是有很多。現在仔細看一下已經不是沒有字體了是亂碼問題。剩下的問題有兩種解決方法
(1) 修改$TOMCAT_HOME/BIN/CATALINA.SH,在最上面添加一行
CATALINA_OPTS=-Dfile.encoding=GBK
(2)在shell下
locale
命令發現linux默認的locale是utf-8 在命令行鍵入 LANG=“zh_CN.GBK”,然后在鍵入locale 命令,沒有一下警告
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
則問題解決了。
如果有此警告,sudo vi /var/lib/locales/supported.d/local
修改在末尾加入
zh_CN.GBK GBK
然后 用命令sudo locale-gen 重新生成locale。問題的一解決。
歸根是因為jvm的編碼的問題,因為jvm默認的依賴本地編碼,在(1)中是強行設置jvm的編碼。而(2)是修改本地編碼。解決方法不一樣,但是目的卻是一樣。
1 首先解決java代來的字體問題,對于jdk1。6解決方法比較簡單,在$JAVA_HOME/jre/lib/fonts新建目錄fallback直接把相應的中文字體(我用的simsun.ttc),復制到該目錄下。其他版本的jdk相對比較復雜一些可以到網上搜索解決方案。
2 第一部完成之后發現,又報表聲稱圖片中的字體正常顯示,但數據中拉的中字體還是有很多。現在仔細看一下已經不是沒有字體了是亂碼問題。剩下的問題有兩種解決方法
(1) 修改$TOMCAT_HOME/BIN/CATALINA.SH,在最上面添加一行
CATALINA_OPTS=-Dfile.encoding=GBK
(2)在shell下
locale
命令發現linux默認的locale是utf-8 在命令行鍵入 LANG=“zh_CN.GBK”,然后在鍵入locale 命令,沒有一下警告
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
則問題解決了。
如果有此警告,sudo vi /var/lib/locales/supported.d/local
修改在末尾加入
zh_CN.GBK GBK
然后 用命令sudo locale-gen 重新生成locale。問題的一解決。
歸根是因為jvm的編碼的問題,因為jvm默認的依賴本地編碼,在(1)中是強行設置jvm的編碼。而(2)是修改本地編碼。解決方法不一樣,但是目的卻是一樣。