get请求中文乱码
Tomcat7:默认编码为ISO-8859-1。后台接收编码不一致将乱码。
1.String str = request.getParameter(“xxx”);
str = new String(paramJson.getBytes(“ISO-8859-1”),“UTF-8”);
获取xxx参数后以ISO-8859-1转成字节码,再已UTF-8转字符串。因为Tomcat7是ISO-8859-1,所以用ISO-8859-1转字节码。如果是其他的,转对应的就可以了。
2.修改Tomcat7的server.xml配置文件。
(1)、将URIEncoding="utf-8"添加到server.xml配置文件中
未添加
<Connector connectionTimeout="20000"
port="8080"
protocol="HTTP/1.1"
redirectPort="8443" />
已添加
<Connector connectionTimeout="20000"
port="8080"
protocol="HTTP/1.1"
redirectPort="8443"
URIEncoding="utf-8" />
(2)、将useBodyEncodingForURI="true"添加到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" />
添加后在获取值前需要设置获取值的编码方式。
request.setCharacterEncoding(“UTF-8”);
修改Tomcat配置,可以两个一起配置。