JAVA中文亂碼解決方法

  在基於Java的編程中,經常會碰到漢字的處裏及顯示的問題,比如一大堆亂碼或問號。
  這是因爲JAVA中默認的編碼方式是UNICODE,而中國人通常使用的文件和DB都是基於GB2312或者UTF-8等編碼,故會出現此問題。以前我也經常爲這個問題而苦惱,後來經查了些資料,終於解決了,我知道一定有很多朋友也會碰到這個問題,所以特就總結了一下,來拿出來讓大家一起分享了。
  1、在網頁中輸出中文。
  JAVA在網絡傳輸中使用的編碼是"ISO-8859-1",故在輸出時需要進行轉化,如:
  String str="中文";
  str=new String(str.getBytes("GB2312"),"8859_1");
  但假如在編譯程序時,使用的編碼是“GB2312”,且在中文平臺上運行此程序,不會出現此問題,一定要注重。
  2、從參數中讀取中文
  這正好與在網頁中輸出相反如: 如果頁面文件採用的是gb2312
             <%@ page contentType="text/html; charset=GBK" %>  後臺Java頁面如果要得到中文,則:
      str=new String(str.getBytes("8859_1"),"GB2312");
    如果頁面採用的文件編碼是UTF-8 後臺Java如果要得到中文,則:
          str=new String(str.getBytes("8859_1"),"UTF-8");
  3、操作DB中的中文問題
  一個較簡單的方法是:在“控制面扳”中,把“區域”設置爲“英語(美國)”。假如還會出現亂碼,還可進行如下設置:
  取中文時:str=new String(str.getBytes("GB2312"));
  向DB中輸入中文:str=new String(str.getBytes("ISO-8859-1"));
  4、在jsp中的中文解決:
  在“控制面扳”中,把“區域”設置爲“英語(美國)”.
  在JSP頁面中加入:
  假如還不行正常顯示,則還要進行下面的轉換:
  如:name=new String(name.getBytes("ISO-8859-1"),"GBK");
  就不會出現中文問題了。
發佈了34 篇原創文章 · 獲贊 7 · 訪問量 25萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章