请求参数时的乱码问题一般分为两种:get请求乱码和post请求乱码
一:请求:
1.get请求:
针对使用Tomcat服务器,get请求乱码是由Tomcat造成的,解决方法如下:
第一步:找到tomcat的conf目录,打开server/server.xml文件
第二步:在文件的指定位置加上 URIEncoding="UTF-8"
注意:不要加在注释字段中
2.post请求:
方法一:针对能够在获取请求参数之前设置request的编码方式
请求:request.setCharacterEncoding("UTF-8")
方法二:针对所有情况,使用编码过滤器CharacterEncodingFilter
在web.xml中配置下面一段代码,此处过滤器包括了设置响应编码格式
<!-- 获取请求参数乱码问题的过滤器-->
<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>
<!--设置默认编码后,请求编码默认遵循,不用再设置-->
<!---->
<!--设置响应编码遵循-->
<init-param>
<param-name>forceResponseEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<!--表示针对所有的请求-->
<url-pattern>/*</url-pattern>
</filter-mapping>
二:响应:
方法一:在请求前设置
响应:response.setContentType("text/html;charset=utf-8")
方法二:如上post请求方法二中的配置过滤器方法