我们在使用request和response进行数据传输的时候,经常会因为编码方式而无法使用中文,但是中文在以后的开发和学习中又是不可避免的,所以我总结了解决request以及response的乱码问题的解决办法。
request和response的乱码问题解决
response乱码
/*
* 第一种方式,通过设置响应头中的Content-Type属性
*/
response.setHeader("Content-Type", "text/html;charset=utf-8");
/*
* 第二种方式,直接进行设置响应体重的属性
*/
response.setContentType("text/html;charset=utf-8");
上面的都是字符流的设置格式。当使用字节流进行传输的时候,里面每一个charset=utf-8 都要把=转换为:,否则还是会乱码
request乱码
post请求时:
request.setCharacterEncoding("utf-8");
必须在获取数据之前进行设置。
get请求时:
第一种方式:
//重组字符串
String data = request.getParameter("data");
data = new String(data.getBytes("iso-8859-1"),"utf-8");
第二种方式:修改tomcat的server.xml文件
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8"/>
第一种方式的缺点为:每一次进行接受都要进行转码。
第二种方式的缺点为:因为改变时全服务器的,所以以后如果配置其他编码格式的项目时没有办法进行改变。