对于浏览器向Tomcat服务器发送请求,Tomcat服务器控制台出现中文乱码问题。
-对于发送请求分为get请求及post请求两种方式
- get请求在请求行上提交数据
- post请求在请求体中提交数据
-get请求出现中文乱码解决方式
1、修改CATLINA_ HOME/conf/server . xml文件
<Connector port= "8080"
protocol= "HTTP/1.1"
connectionTimeout= " 20000"
redirectPort= "8443"
URIEncoding="UTF-8"/>
注:位置及内容不能错误!
2、通过解码,编码的方式(Tomcat8.0版本以下适用)
String name = request.getParameter("username");
byte[] bytes = name.getBytes("ISO-8859-1");
name = new String(bytes, "utf-8");
System.out.println(name);
注:对于Tomcat8.0版本及以上,不需要做任何处理,输出不会出现乱码。ISO-8859-1解码再编码反而会出现乱码。
-post请求出现中文乱码解决方式
1、修改请求体的编码方式
request.setCharacterEncoding("UTF-8");
String pwd = request.getParameter("password");
System.out.println(pwd);
个人对解码编码的理解
例:
浏览器编码(utf-8)>解码(byte数组)>发送请求到服务器(ISO-8859-1)
V
输出到控制台(utf-8)< 服务器端再进行解码(byte数组)
注:解码的方式应该相同,否则byte数组无法保持一致,即无法与浏览器编码保持一致。