JAVA中文顯示亂碼問題

在基於JAVA的編程中,經常會碰到漢字顯示亂碼的問題,經一番查詢現總結如下。

在JSP中建議網頁編碼方式用GBK,這樣會方便一些。


這個問題是因爲JAVA編碼方式轉換出現了問題,Java中默認的編碼方式是UNICODE,而中國人通常使用的文件和DB都是基於GB2312或者BIG5等編碼,故會出現此問題。我知道一定有很多朋友也會碰到這個問題,所以特就總結了一下,來拿出來讓大家一起分享了。自己也做個備忘。


1、在網頁中輸出中文。
JAVA在網絡傳輸中使用的編碼是"ISO-8859-1",故在輸出時需要進行轉化,如:
String str="中文";
str=new String(str.getBytes("GB2312"),"GBK");
但如果在編譯程序時,使用的編碼是“GB2312”,且在中文平臺上運行此程序,不會出現此問題,一定要注意。


2、從參數中讀取中文
這正好與在網頁中輸出相反如:
str=new String(str.getBytes("8859_1"),"GBK");


3、操作DB中的中文問題
一個較簡單的方法是:在“控制面扳”中,把“區域”設置爲“英語(美國)”。如果還會出現亂碼,還可進行如下設置: (網上看的,自己沒做過實驗)

取中文時:String XSDWMC=new String(prs.getString("XSDWMC").getBytes("GB2312"),"GBK"));

向DB中可直接寫入GBK,這裏少一次轉換

4、在JSP中的中文解決:
在“控制面扳”中,把“區域”設置爲“英語(美國)”. (網上看的,自己沒做過實驗)
在JSP頁面中加入:
如果還不行正常顯示,則還要進行下面的轉換:
如:name=new String(name.getBytes("ISO-8859-1"),"GBK");
就不會出現中文亂碼問題了。

 

 

-----------------------------

如果以上還不能解決您的問題,請看我轉載的一片文章

http://blog.csdn.net/mrliming/archive/2010/01/14/5191199.aspx

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章