请求与响应的时候乱码问题原理
Posted 奋斗的少年WH
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请求与响应的时候乱码问题原理相关的知识,希望对你有一定的参考价值。
1 乱码: 2 3 请求乱码: 4 get: 5 6 1.修改tomcat中server.xml 7 URIEncoding="UTF-8" 服务器采用utf-8的字符集编码 来进行 解码和编码 8 默认的编码格式 是 ISO-8859-1 9 10 2.new String(sname.getBytes("ISO-8859-1"),"UTF-8") 11 浏览器以utf-8编码发送数据 ,服务器默认以ISO-8859-1解码,发送数据给servlet,servlet中需要再以ISO-8859-1格式 获得字节,然后 按照utf-8的字符集 解码 12 13 post: request.setCharacterEncoding("UTF-8"); 14 设置请求数据以utf-8方式 编码 解码,这种方式只对 体提交方式有效 15 16 17 响应乱码: 18 19 response.setCharacterEncoding("UTF-8"); 只是说明服务器 对客户端 响应数据 是以UTF-8 方式,响应,但是 浏览器以何种方式 阅读数据 不受控制!! 20 21 response.setContentType("text/html;charset=UTF-8"); 以UTF-8 方式 响应数据,并提醒浏览器 以这种方式 阅读 22 23 response.setContentType("text/html;charset=UTF-8") 可以完全替代 response.setCharacterEncoding("UTF-8")
1 乱码问题: ASCII码值 2 3 请求的时候乱码: 4 get提交 5 ***********方式一 6 String name=request.getParameter("uname"); 7 byte[] bs=name.getBytes("ISO-8869-1");//获得客户端编码的字节数组 8 String sname=new String(bs,"utf8");//把字节数组解码成utf-8的字符串 9 10 ***********方式二 只针对头(get)提交方式 11 在tomcat的server.xml中设置为URIEncoding="utf-8" 12 13 14 post提交 15 方式一同get的方式一 16 ***********方式二 只针对体提交方式 17 request.setCharacterEncoding("utf-8"); 18 19 20 21 响应的时候乱码: 22 response.setCharacterEncoding("utf-8")//AJAX可以 23 response.setContentType("text/html;charset=UTF-8");
以上是关于请求与响应的时候乱码问题原理的主要内容,如果未能解决你的问题,请参考以下文章
servlet请求编码与响应编码问题(编码不一致可能会导致乱码)