插入数据库中文乱码问题

最近在做个web项目的时候发现一个关于乱码的问题总结一下,最开始在页面插入一条记录总是显示为??。我检查了spring过滤器并强制初始化开启,配置如下:

<!-- 过滤器utf-8 -->
    <filter>  
        <filter-name>encodingFilter</filter-name>  
        <filter-class>  
            org.springframework.web.filter.CharacterEncodingFilter  
        </filter-class>  
        <init-param>  
            <param-name>encoding</param-name>  
            <param-value>UTF-8</param-value>  
        </init-param> 
         <init-param>
            <param-name>forceEnCoding</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>  
    <filter-mapping>  
        <filter-name>encodingFilter</filter-name>  
        <url-pattern>/*</url-pattern>  
    </filter-mapping> 

然后我我开始调试到程序里,发现bean里获取的内容都是正常的中文,说明过滤器正常工作。还是插入的是??,这个时候只有两种情况:

  1. 数据库编码不对
  2. mybatis与mysql连接的编码不对

关于第一个问题暂时网上找到的解决方案只能重新创建库选择正确的编码方式来解决,重新创建了数据库后我在heidisql里直接插入中文是可以的说明的确是utf-8编码没问题。然后我试了从程序插入中文这个办法还是不能解决,看来我是属于第二个问题。然后我在配置数据源的地方url改成了:

jdbc:mysql://localhost:3306/hq_db?useUnicode=true&amp;characterEncoding=UTF-8

修改后可以正常插入中文了。

你可能感兴趣的:(数据库,乱码)