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> 

如果还不能解决的,你可以给我留言,咱们共同解决,如果有什么不对的地方,请各位指出,咱们共同探讨....

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