在本地搞了一个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
经测试,可以完美解决“中文乱码”的问题。