tomcat 7 GET请求中文乱码

方法一:

修改server.xml: URIEncoding="utf-8"

<Connector port="8080"  protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />

方法二:

String parameter = request.getParameter("auth_id");

String string = new String(parameter.getBytes("iso-8859-1"), "utf-8");

(1)tomcat7,URL中参数的默认解码是ISO-8859-1,而tomcat8的默认解码为utf-8。

(2)在过滤器中使用 request.setCharacterEncoding() 只能用来处理 POST 请求,对 GET 则无效。

扫描二维码关注公众号,回复: 4393726 查看本文章

(3)tomcat乱码的终极解决办法:

tomcat7:设置URIEncoding + Post的过滤器

tomcat8:只要设置一个Post过滤器就可以了,tomcat9跟tomcat8是一样的。

<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>

猜你喜欢

转载自my.oschina.net/u/3865831/blog/1844119