mysql 存儲中文問題

                 mysql中的存儲中文的問題解決方法

   前些時候的做過一個實訓是關於mvc的一個網站,其中遇到了很多問題因爲時間的原因,把這些問題給省略掉了,最近又碰到了這些問題,這次無論怎樣都要把問題解決掉一個是mysql存儲中文的問題(在庫中顯示的是????),我相信大部分人的問題應該都是這樣子的....

     現在我把我的解決方法總結一下(當人也是從網上看一些大俠們的方法,加上自己的感想,如有雷同,敬請諒解)。

     第一,編碼的問題是首當其衝要解決的,我個人的用的是utf-8的(gbk的沒有試過)。

    先要把你的mysql的編碼設置爲UTF-8。

     如果想方便的話可以在mysql的根目錄下找到    my.ini  陪置文件,把[mysql]    default-character-set=編碼。中的編碼改成utf8(注意是utf8不是utf-8)。

    第二,然後在連接數據庫的時候,代碼後面加上useUnicode=true&characterEncoding=utf-8,格式爲

 DriverManager.getConnection( "jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=utf-8",user,password);這樣做的目的是連接數據的時候都是採用utf-8的形式。

第三,設置過濾器。

  1. import java.io.IOException; 
  2.  
  3. import javax.servlet.Filter; 
  4. import javax.servlet.FilterChain; 
  5. import javax.servlet.FilterConfig; 
  6. import javax.servlet.ServletException; 
  7. import javax.servlet.ServletRequest; 
  8. import javax.servlet.ServletResponse; 
  9.  
  10. public class SetCharacterEncodingFilter implements Filter { 
  11.  protected String encoding = null
  12.  
  13.  protected FilterConfig filterConfig = null
  14.  
  15.  public void init(FilterConfig filterConfig) throws ServletException { 
  16.   this.filterConfig = filterConfig; 
  17.   this.encoding = filterConfig.getInitParameter("encoding"); 
  18.  } 
  19.  
  20.  public void doFilter(ServletRequest request, ServletResponse response, 
  21.    FilterChain chain) throws IOException, ServletException { 
  22.    
  23.   request.setCharacterEncoding("UTF-8"); 
  24.   System.out.println("執行"); 
  25.   chain.doFilter(request, response); 
  26.  } 
  27.  
  28.  public void destroy() { 
  29.    
  30.   this.encoding = null
  31.   this.filterConfig = null
  32.  } 
  33.  
  34.  protected String selectEncoding(ServletRequest request) { 
  35.   return (this.encoding); 
  36.  } 

然後就是在web。xml文件中配置(現在的tomcat版本,可以自動檢查是夠更新,所以不用重啓,稍等片刻就可以了)

 

  1. <filter> 
  2.   <filter-name>Set Character Encoding</filter-name> 
  3.   <filter-class>com.bean.SetCharacterEncodingFilter</filter-class> 
  4.    <init-param> 
  5.    <param-name>encoding</param-name> 
  6.    <param-value>UTF-8</param-value> 
  7.   </init-param> 
  8.  </filter> 
  9.  
  10.  <filter-mapping> 
  11.   <filter-name>Set Character Encoding</filter-name> 
  12.   <url-pattern>/*</url-pattern> 
  13.  </filter-mapping> 

如果還不能解決的,你可以給我留言,咱們共同解決,如果有什麼不對的地方,請各位指出,咱們共同探討....

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