问题场景:在用springmvc结合jsp页面向数据库添加数据时,发现插入的数据是乱码,并且查出来的在页面上显示的也是乱码。
问题定位:
1.先确定插入数据库的数据是否是乱码
我这边肯定是乱码的,解决办法是在你的配置文件jdbcUrl =jdbc:mysql:///itcastoa?useUnicode=
true
&characterEncoding=UTF-8加上问好后面的,这样插入插入数据库就不会乱码了。
2.如果确定数据库里面的没有乱码,那可能是页面显示的问题
在你jsp页面上看下,有没有设置utf-8,设置好后页面一般会显示正常
<%@page language=
"java"
contentType=
"text/html; charset=utf-8"
pageEncoding=
"utf-8"
%>
3.检查下你的web.xml文件有没有如下设置,没有的话加上
<!
-- 配置请求过滤器,编码格式设为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>
4.如果你是rest接口含有@requestbody注解,返回有乱码,需要在你requestmapping后面加上utf-8,如下
参考文档:https://blog.youkuaiyun.com/linfanhehe/article/details/79220177