程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> jsp和servlet操作mysql中文亂碼問題的解決辦法

jsp和servlet操作mysql中文亂碼問題的解決辦法

編輯:關於JSP

       自己做測試的時候用到jsp/servlet 向mysql中寫數據,但是中文總是亂碼,今早糾結了半天才搞定,分享給大家我的解決辦法

      首先看是從什麼地方開始出現的亂碼,只要統一編碼,就不會出現亂碼,下面以uft-8(個人認為最好)為例,詳細說明:

      1、如果亂碼是從jsp頁面出現的,jsp頭部頁面加上:

      在head標簽中加上標簽。

      2、如果亂碼是在servlet中出現的,則有兩種方法:

      一種是在每個servlet中doget和doPost方法頭部加上

      request.setCharacterEncoding(“UTF-8″);

      第二種最保險,一勞永逸,是專門寫一個過濾器類,也稱國際化,類名為SetCharacterEncodingFilter內容如下

    1.jpg

    2.jpg

     

      然後在web-inf的web.xml中加上如下代碼:

    3.jpg

     

      然後在web-inf的web.xml中加上如下代碼:a這樣就搞定了

      3、如果還是有亂碼,就是mysql數據庫的問題了

      1)保證建立數據庫的時候數據庫編碼選擇的是utf-8,最好在每個表中也指定編碼格式,mysql默認是latin1

      2)如果mysql版本是4.x以上,數據庫中還是出現亂碼,有以下兩種解決方法:

      一種是在連接數據庫的代碼中指定編碼方式:

     

    String url = “jdbc:mysql://localhost:3306/test2?autoReconnect=true&useUnicode=true&characterEncoding=gbk&mysqlEncoding=utf8″ ;

     

      如果還是不行的話就是用

     

    show variables like ‘collation_%';

     這個命令來查看默認字符集,如果不是utf-8的話在my.ini(windows)或者是my.cnf(linux)將相應的編碼修改成utf8之後重啟mysql服務器就ok了

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved