乱码出现原因
乱码原因:传输方和接收方采用的编码不一致。传输方对参数采用的是UTF-8编码而接收方却用GBK进行解析,当然是乱码,且Tomcat服务器默认采用的ISO8859-1编码得到参数值,如果没有设置也可能会出现乱码。
乱码处理
请求:
get请求:
String name = reuqest.getParameter("name");
//拿到原始的二进制数据,用UTF-8进行重新编码
byte b[] = name.getBytes("ISO-8859-1");
String name = new String(b,"UTF-8");
post请求:
req.setCharacterEncoding("utf-8");
响应:
方式一
//方式一
//设置response获得字符流的缓存区的编码
response.setCharacterEncoding("UTF-8");
//设置浏览器默认打开的时候采用的字符集
response.setHeader("Content-Type","text/html;charset=UTF-8");
//回写
response.getWriter().println("下载中....");
方式二
//方式二
//直接利用setContentType()方法便可以同时设置缓存区和浏览器默认字符集
response.setContentType(text/html;charset=UF-8);
//回写
response.getWriter().println("下载中....");