JAVAWeb中请求Request和Response的中文乱码处理
Request参数接收中的乱码处理.
POST方式提交乱码处理:
* <form method=”post”>的时候,这种提交才是POST提交.其他的都是get.
* POST方式提交的参数在请求体中.request对象在后台接收参数.request对象有缓存区.默认缓冲区的编码ISO-8859-1.
* 处理方式:设置request的缓冲区的编码.
* request.setCharacterEncoding(“UTF-8”) //只需要设置一次
GET方式提交乱码处理:
* GET方式提交的参数会在地址栏上显示 在请求行的路径后面.浏览器就会对路径进行一次编码.将编码后内容取出来.再进行一次编码.
* 处理方式:
* 修改服务器提交的编码.
* 采用URLEncoder 和URLDecoder类对中文进行编码和解码.
* 使用String类的构造方法:
username = new String(username.getBytes("ISO-8859-1"),"UTF-8");
System.out.println(username);
Response处理响应中文乱码:
方式1:★
response.setContentType("text/html;charset=utf-8");
或者 response.setCharacterEncoding("utf-8");
方式2:理解
response.setHeader("content-type", "text/html;charset=utf-8");
另外再提醒一下cookie的乱码处理:
存放时:
Cookie c = new Cookie("name",URLEncoder.encode("你好","utf-8"));
取值时:
URLDecoder.decode(request.getCookies()[i].getValue(),"utf-8");