liunx java font_Linux下JDK中文字体乱码 | 学步园
問題描述:
部署在linux下的java應(yīng)用程序中的中文會變成一個一個的“口”字,也就是亂碼
問題分析:
代碼中使用了如下的實(shí)現(xiàn)方式:
newjava.awt.Font("宋體",?Font.PLAIN,12)
那么jdk中一定需要“宋體”這個字體($JAVA_HOME/jre/lib/fonts目錄下)
由于JDK默認(rèn)沒有中文字體,所以就會顯示為亂碼
需要手工設(shè)置一下,讓java應(yīng)用程序能夠找到所需的中文字體
解決方式:
將需要的字體文件上傳至$JAVA_HOME/jre/lib/fonts目錄下,重啟tomcat即可(所需的字體可在window系統(tǒng)下找到,以window 7為例:字體保存在C:\Windows\Fonts路徑下)
問題描述:
我編寫的JAVA程序中的Swing/AWT組件中的中文顯示都是方框,而標(biāo)題卻能正常顯示中文,且使用?? System.out.println("中文字符串")能正常顯示中文;
解決思路:
可能是JRE的中文字庫不支持引起,所以添加一個可以支持的中文字庫
解決辦法:
第一步:下載中文字庫,我使用的是simsun.ttc,可以直接在Windows(我用的是XP的系統(tǒng))中找到,入徑為C:\WINDOWS\Fonts下的simsun.ttc
也可以在網(wǎng)站上下載 推薦天網(wǎng)網(wǎng)站:
http://file.tianwang.com/cgi-bin/search?word=simsun.ttc
第二步:將中文字庫simsun.ttc放入Jre的字庫中,操作如下:
cd /lib/fonts或者cd /jre/lib/fonts
mkdir fallback (fallback代表存放后備語言的文件夾)
其中是你安裝jdk/jre的路徑,我的是/usr/lib/jdk1.5。復(fù)制或者鏈接一個中文字體至其下:
ln -s /usr/share/fonts/truetype/simsun.ttf /usr/lib/jdk1.5/jre/lib/fonts/fallback/simsun.ttf
第三步:有了上面的步驟之后,就可以在代碼中編碼實(shí)現(xiàn)顯示中文了,操作如下:
在main 函數(shù)中的開頭處添加如下代碼:
Font f =? new Font("宋體",Font.PLAIN,12);
UIManager.put("Label.font",f);
UIManager.put("Label.foreground",Color.black);
UIManager.put("Button.font",f);
UIManager.put("Menu.font",f);
UIManager.put("MenuItem.font",f);
UIManager.put("List.font",f);
UIManager.put("CheckBox.font",f);
UIManager.put("RadioButton.font",f);
UIManager.put("ComboBox.font",f);
UIManager.put("TextArea.font",f);
UIManager.put("EditorPane.font",f);
UIManager.put("ScrollPane.font",f);
UIManager.put("ToolTip.font",f);
UIManager.put("TextField.font",f);
UIManager.put("TableHeader.font",f);
UIManager.put("Table.font",f);
以上代碼代表了在整個程序中的相關(guān)組件都使用定義好"f"字體,從而就不會存在中文亂碼了,也省卻了對所有組件單獨(dú)設(shè)置的麻煩。
總結(jié)
以上是生活随笔為你收集整理的liunx java font_Linux下JDK中文字体乱码 | 学步园的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 女子丽江60元买2串烧烤仅6只虫2只蝎
- 下一篇: 精准发力“二次元”群体:盈通推出“樱瞳水