解决Get/Post请求中文乱码问题

给服务器设置编码

Get请求

  在url地址栏输入回车是get请求,form表单不写method=”post”,默认就是get请求。
  get请求过来的数据,在url地址栏上就已经经过编码了,所以我们取到的就是乱码。Tomcat8.0之前,用get请求访问tomcat时的编码方式,默认的编码方式使用ISO-8859-1。
  解决方式:
  1.先让文字回到ISO-8859-1对应的字节数组,然后再按utf-8组拼字符串,

1
String name = new String(request.getParameter("name").getBytes("ISO-8859-1"),"utf-8")

  2.在Tomcat配置文件server.xml中添加URIEncoding=”utf-8”,但是一般不用.定位到

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

  从tomcat8.0开始,用get请求访问tomcat时的编码方式不再是ISO-8859-1,而变成了UTF-8 所有Tomcat8.0不用处理get请求乱码问题

Post请求

  是以二进制流的形式发送到的服务器。服务器收到数据后。默认以iso-8859-1进行编码。
  解决方式:
  1.这种方法必须获取请求参数之前调用

1
request.setCharacterEncoding("utf-8");  //设置请求体里面的文字编码

  2.

1
String name = new String(request.getParameter("参数名").getBytes("iso-8859-1"),"utf-8");

给浏览器设置编码 (常用)

1
response.setContentType("text/html;charset=utf-8"); //(UTF-8是国际通用编码)

-------------本文结束感谢您的阅读-------------