(总结)使用springmvc解决各种乱码问题的大汇总
2017-03-06 10:41
447 查看
之前项目中的web.xml中的编码设置:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201603/69c5a8ac3fa60e0848d784a6dd461da6.gif)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201603/69c5a8ac3fa60e0848d784a6dd461da6.gif)
但这个设置是针对POST请求的,tomacat对GET和POST请求处理方式是不同的,要处理针对GET请求的编码问题,则需要改tomcat的server.xml配置文件,如下:
改为:
最关键的点在这里:如果你是更改的tomcat安装目录的server.xml配置文件,那么在用eclipse运行项目时会发现配置没起作用,其实是因为eclipse在运行项目时是用的eclipse中配置的tomcat,那么问题就好解决了,打开eclipse中的tomcat配置文件,改为如下即可:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/30/e9266520a9d860e7884ca1db53e0e435.png)
注:配置useBodyEncodingForURI="true"后,可以解决普通get请求的中文乱码问题,但是对于通过ajax发起的get请求中文依然会乱码,请把useBodyEncodingForURI="true"改为URIEncoding="UTF-8"即可。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201603/69c5a8ac3fa60e0848d784a6dd461da6.gif)
<filter> <filter-name>CharacterEncoding</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>CharacterEncoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
![](https://oscdn.geek-share.com/Uploads/Images/Content/201603/69c5a8ac3fa60e0848d784a6dd461da6.gif)
但这个设置是针对POST请求的,tomacat对GET和POST请求处理方式是不同的,要处理针对GET请求的编码问题,则需要改tomcat的server.xml配置文件,如下:
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
改为:
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" useBodyEncodingForURI="true"/>
最关键的点在这里:如果你是更改的tomcat安装目录的server.xml配置文件,那么在用eclipse运行项目时会发现配置没起作用,其实是因为eclipse在运行项目时是用的eclipse中配置的tomcat,那么问题就好解决了,打开eclipse中的tomcat配置文件,改为如下即可:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/30/e9266520a9d860e7884ca1db53e0e435.png)
注:配置useBodyEncodingForURI="true"后,可以解决普通get请求的中文乱码问题,但是对于通过ajax发起的get请求中文依然会乱码,请把useBodyEncodingForURI="true"改为URIEncoding="UTF-8"即可。
相关文章推荐
- SpringMVC使用@ResponseBody输出字符串时遇到的乱码问题及解决办法
- 解决ASP.NET中的各种乱码问题总结
- 解决springmvc使用ResponseBody注解返回json中文乱码问题
- SpringMVC使用@ResponseBody输出字符串时遇到的乱码问题及解决办法
- Oracle使用总结(三):Oracle JOB问题解决汇总
- SpringMVC项目中中文字符乱码问题及解决办法总结(非专业最优解决办法) -- ajax传值乱码; request.getParameter()乱码;
- 如何彻底解决SpringMVC4.0下使用解决@ResponseBody 中文乱码问题
- web开发各种乱码问题处理全集 保证解决99%的乱码错误(包括mysql的乱码解决,使用struts2框架的乱码问题)
- SpringMVC使用@ResponseBody输出字符串时遇到的乱码问题及解决办法
- 解决SpringMVC使用@ResponseBody中文乱码(???)问题
- XAMPP集成环境下Apache端口占用、MySQL密码及其各种中文字符乱码问题解决汇总
- SpringMVC使用@ResponseBody输出字符串时遇到的乱码问题及解决办法
- 解决springMVC4下使用@ResponseBody的中文乱码问题
- 使用SpringMVC参数传递时,解决get请求时中文乱码的问题
- SpringMVC使用@ResponseBody输出字符串时遇到的乱码问题及解决办法
- 解决springmvc使用@ResponseBody返回String类型字符串中文乱码问题
- SpringMVC使用@ResponseBody输出字符串时遇到的乱码问题及解决办法
- doGet和doPost不同使用以及安卓乱码问题解决案例总结
- SpringMVC使用@ResponseBody输出字符串时遇到的乱码问题及解决办法
- SpringMVC使用注解@ResponseBody返回json以及中文乱码问题解决