说明:
(0)声明:本篇博客还存在很多疑问,很多点没有搞清楚;随时增改……?
(1)为什么写本篇博客?:? ? ? ? ?
? ? ? ? ? ● 在【Spring Boot电商项目27:商品分类模块六:统一校验管理员身份;(选用【J2EE中的过滤器】来实现需求;重难点是【如何在Spring Boot项目中,使用过滤器】;)】中,遇到了中文乱码问题;
? ? ? ? ? ●?在我们开发这个过滤器之前,是没有这个问题啊;
? ? ? ? ? ●?PS:等到写这篇博客的时候,这个问题不能复现了……
? ? ? ? ? ●?当时的解决策略是在application.properties配置文件中,配置以下内容:
spring.http.encoding.force=true
spring.http.encoding.charset=UTF-8
spring.http.encoding.enabled=true
server.tomcat.uri-encoding=UTF-8
(2)目前有两个问题需要解决:
? ? ? ? ? ●?首先,是解决一个疑问:我们在这个Spring?Boot电商项目并没有手动却设置请求与响应的编码问题啊;为什么在开发过滤器之前,我们接口返回中文时,没有乱码?
? ? ? ? ? ●?然后,就是研究下Spring?Boot项目的中文乱码问题;
零:请求与响应的【中文乱码】:历史内容说明;
(1)在最初的Servlet中,解决中文乱码;
? ? ? ? ? ●?【Servlet与JSP进阶七:Post请求中文乱码;Get请求中文乱码;响应中文乱码;】;介绍了最基础的解决中文乱码的策略;
? ? ? ? ? ●?【过滤器四:案例-字符集过滤器;(设置请求与响应的编码,以过滤器的方式解决中文乱码)】;介绍了,使用过滤器来统一解决中文乱码问题;
(2)Spring?MVC中,解决中文乱码;
? ? ? ? ? ● 【SpringMVC入门与数据绑定10:中文乱码问题:请求中的中文乱码;(包括:【get:修改Tomcat配置文件】【post:web.xml中配置过滤器】【响应:Spring配置文件中配置转换器】)】;介绍了Spring MVC项目中,如何来统一解决中文乱码问题;
……………………………………………………
? ? ? ? ? ● 【SSM开发书评网4:项目准备与SSM整合二:Spring与Spring MVC环境配置;(本篇博客的内容都是以前介绍过的知识,没有新知识;算是一个正式开始前的准备工作;)】;演示了在Spring?MVC项目中,解决中文乱码方案的应用;
?
一:乱码情况说明;疑问阐述;(友情提示:这部分的描述,可能存在错误或者偏差的地方!)
(1)没有设置过滤器之前,Controller处理的请求和响应,是没有中文乱码问题的;
也就是说,在前面,我么没有开发这个过滤器之前,我们并没有手动去解决中文乱码问题,但是却没有出现中文乱码问题;
经过分析,也就是说:那些没有经过过滤器处理,即只被Controller处理的请求和响应,并没有中文乱码问题;
……………………………………………………
对于,这个情况,为什么会这样,还不清楚。是不是Spring?Boot本身有一定的【请求与响应的中文处理能力】?
(2)引入过滤器之后,?当时,测试的时候,发现,出现了中文乱码;(可惜,这个中文乱码,不能复现了……,不知道为什么)
(3)现在,引入过滤器之后,无论怎样测试;无论一个请求与响应是否被过滤器处理过,都没再出现中文乱码问题;
在(2)中,遇到中文乱码时,采取的解决策略是在application.properties配置文件中,配置了以下内容:
spring.http.encoding.force=true
spring.http.encoding.charset=UTF-8
spring.http.encoding.enabled=true
server.tomcat.uri-encoding=UTF-8
然后,就解决了中文乱码问题;
……………………………………………………
但是,当自己去掉上面的配置内容,想复现乱码时,却发现复现不了了;无论是自己清除缓存,重新发布项目,都不能复现了;即,再次测试【没有经过过滤器处理,只被Controller处理的请求与响应】和【经过过滤器和Controller处理过的请求与响应】的时候,都没有乱码了;
对此,为什么会这样,尚不明白;
?
二:Spring?Boot项目的中文乱码问题:目前,暂时可以采取的解决方案;
1.目前采取的解决方案:在application.properties中配置;
spring.http.encoding.force=true
spring.http.encoding.charset=UTF-8
spring.http.encoding.enabled=true
server.tomcat.uri-encoding=UTF-8
保留这个配置,目前暂时就这样做吧;?以后如果再不行的时候,或者有精力、有需要的时候,再更加深入的研究;
2.可以参考的文章;(PS:这些文章还没看……)
【Spring Boot 中文乱码问题解决方案汇总】;
【Spring Boot中文乱码问题解决方案:亲测有效】;
【如何解决Spring Boot中的中文乱码问题?】;
……
|