发生中文乱码的三种情况
浏览器(utf-8) ------>web服务器(ISO-8859-1) ------>serlvet
1、表单
post
request.setCharacterEncoding("utf-8"); //请求体
get 将请求过来的字符串的字节进行转换
new String(request.getParameter("username").getByte("iso-8859-1"), "utf-8");
2、超链接
与get一样
3、sendRedirect()发生乱码
注意是再次发送了一次请求
IE6(当中文是奇数时,可能会出现乱码)
发送方
String info = java.net.URLEncoder.encode("你好", "utf-8");
接收方
String info = new String(request.getParameter("ifno").getBytes("iso-8859-1"), "utf-8");
响应
在报务器端是中文,在response时,也要考虑浏览器显示是否正确,一般通过如下设置
response.setContentType("text/html;charset=utf-8")