处理乱码问题的方式
一. get请求中的中文乱码
解决方式1:
获取字符串之后将字符串进行重新编码。
原因:由于浏览器默认使用iso-8859的编码方式,所以可能导致产生乱码。
//传递到Servlet的“name”属性,值为中文
String name = request.getParameter("name");
//修改编码方式为utf-8
System.out.println(new String(name.getBytes("iso-8859-1"), "utf-8"));
解决方式2:
- 设置request的编码格式
- 同时,还需要在tomcat的配置文件server.xml中添加配置useBodyEncodingForURI=“true"。
//1、在Servlet中设置request的编码格式
request.setCharacterEncoding("utf-8");
<!-- 2.在connector中设置useBodyEncodingForURI参数 -->
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
useBodyEncodingForURI="true" />
解决方式3:
在server.xml配置文件中直接添加属性URIEncoding=”utf-8"
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8" />
二. post请求中的中文乱码
解决方式:
request.setCharacterEncoding("utf-8");
三. response响应编码
解决方式:
//根据浏览器的中文编码进行设置
response.setCharacterEncoding("utf-8");
//设置响应的contentType属性
response.setContentType("text/html;charset=utf-8");