HTTP请求与响应参数中文乱码问题

一、HTTP请求参数中文乱码问题

1、解决post请求乱码问题

在调用getParameter()方法前先调用setCharacterEncoding(charset)方法设定与页面请求编码相同的解码字符集

2、解决get请求的乱码问题

Tomcat服务器:

在server.xml修改编码格式

修改:

<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1"redirectPort="8443"/>

为:

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

二、响应输出中文乱码问题

(1)response.setCharacterEncoding("UTF-8")

只能用来设置PrintWriter输出流中字符的编码方式,它的优先权最高

(2)response.setContentType("text/html;charset=UTF-8")

可以设置PrintWriter输出流中字符的编码方式,也可以设置浏览器接收到这些字符后以什么编码方式来解码,它的优先权低于第一种方法

(3)response.setLocale(new java.util.Locale("zh","CN"))

只能用来设置PrintWriter输出流中字符的编码方式,它的优先权最低,在已经使用前两种方法中的一个设置了编码方式以后,它将被覆盖而不再起作用

经验分享 程序员 微信小程序 职场和发展