在本地搞了一个SSM的项目练手,修改数据的时候,提交中文数据后居然乱码了。网上一顿狂搜,最终花了几个小时终于解决。
遂加以记录,以便不时之需。
就这么个表单,如果提交中文修改就会乱码,首先确定项目和数据库编码均为UTF-8格式,页面中也有设置编码格式为UTF-8
直接给出解决步骤:
1.针对页面中乱码的处理,在web.xml中添加spring框架的编码过滤器配置:
<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>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
2.针对mybatis做数据更新产生的乱码处理,在数据库配置后加编码限制:
?useUnicode=true&characterEncoding=utf8
经测试,可以完美解决“中文乱码”的问题。 |