關於mysql中漢字的亂碼問題

來源:互聯網
上載者:User

    環境是JDK1.5,TOMCAT5.0 MYSQL5.1我們要保證三方的編碼一致即頁面方,處理方,資料庫方。假設現在我們的統一編碼為gb23121>JSP頁面必須包括     <%@ page contentType="text/html; charset=gb2312" %>2>JAVA中資料庫連接中包括
     在後台java處理常式中加上 request.setCharacterEncoding("gb2312");
     this.URL = "jdbc:mysql://127.0.0.1/demobase?useUnicode=true&characterEncoding=gb2312"
3>mysql5中所建立的資料庫應為gd2312 該庫下的表也要為gd2312
 如果你用的用戶端工具為mysql-front則在建庫和建表時都可以設定編碼

這樣保持三方統一編碼,才可能保持入庫的為中文,從資料庫中取資料,寫到頁面上為中文,但是在實踐還是有點問題,即當頁面以POST提交到後台後,如果提交的表單,在後台有為其寫一個formBean的話(即包含set() get()方法的bean)則同樣從頁面傳到後台JAVA程式中還是亂碼,且為ISO8859-1編碼,最好還是通過以下方法轉換一下 vaName=new String(vaName.getBytes("ISO8859-1"),"gb2312"); 這樣寫到資料庫中的才是漢字. 但是如果前台提交的的表單,沒有對應的fromBean, 則在執行完request.setCharacterEncoding("gb2312"); 後在request中取出的就是漢字了,不需要其它的轉換,直接寫到資料表中也是漢字.

      這個問題很奇怪,查了很多資料也沒有結果,不過可能我的這隻是一個特例. 可以參考
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.