springMVC保存数据到mysql数据库中文乱码问题解决方法

时间:2021-09-02 06:40:49

      今天遇到了乱码问题,保存到mysql数据库的中文变成了问号(?)。折腾了老半天才搞定,现将解决方法记录如下。

首先在web.xml最上面位置配置过滤器:

      <filter>
<filter-name>CharacterEncodingFilter</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>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
此过滤器只针对post方法有效。forceEncoding的作用是忽略来源编码(不管编码没有),强制以目标编码为编码格式。

然后去修改数据库、表中列的编码格式为utf8:

springMVC保存数据到mysql数据库中文乱码问题解决方法


springMVC保存数据到mysql数据库中文乱码问题解决方法

 最后设置数据源的编码格式:

 <property name="url" value="jdbc:mysql://121.40.90.125/test?useUnicode=true&characterEncoding=utf-8"></property>  
        如此保存到数据库的中文乱码问题就解决了。