请求与响应的时候乱码问题原理

 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");
时间: 2024-10-26 21:33:31

请求与响应的时候乱码问题原理的相关文章

javaweb解决post和get请求方式中文乱码问题(通用)

添加一个过滤器,解决乱码问题,代码如下: 1 import java.io.IOException; 2 import java.io.UnsupportedEncodingException; 3 import java.util.Map; 4 5 import javax.servlet.Filter; 6 import javax.servlet.FilterChain; 7 import javax.servlet.FilterConfig; 8 import javax.servlet

SpringMVC 解决GET请求时中文乱码的问题

<filter>        <filter-name>CharacterEncoding</filter-name>        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>        <init-param>            <param-name>encoding</param

详解get请求和post请求参数中文乱码的解决办法

首先出现中文乱码的原因是tomcat默认的编码方式是"ISO-8859-1",这种编码方式以单个字节作为一个字符,而汉字是以两个字节表示一个字符的. 一,get请求参数中文乱码的解决办法 对于get请求解决中文乱码有两种途径一种是修改tomcat默认的编码方式为"UTF-8" 在tomcat的server.xml里把 <Connector connectionTimeout="50000" port="8080" pro

使用过滤器(Filter)解决请求参数中文乱码问题(复杂方式)

前述: 在写这篇笔记之前,对笔记中的设计模式进行介绍: 本篇笔记中将要使用到的设计模式是:装饰(包装)设计模式 (1)装饰(包装)设计模式口诀: ①定义一个类,实现被装饰对象的接口 ②定义一个成员变量,记住被装饰对象的引用 ③定义构造方法,传入被装饰对象的实例 ④改写要修改的方法 ⑤不需要改写的方法,调用被装饰对象的原来的方法 (2)什么时候使用装饰设计模式 当我们需要对一个类进行增强的时候,增强后的类不再当前类的范畴 例如:现在有一个     Animal类     Cat和Dog都属于动物类

Ajax请求URL后加随机数原理

原文:Ajax请求URL后加随机数原理 例如: $.ajax({             type: "GET",    url: "login.action?ran="+getRandomNum() }); 中url后面接了个随机数,是为了欺骗浏览器或代理服务器用的:某些代理服务器会无视 no-cache 之类的标识,对响应结果进行强行缓存:而当url请求不改变的时候,有时候会导致浏览器不向服务器发送请求,而直接取调用缓存中的数据.加上随机数就是欺骗浏览器url改

GET请求的中文乱码问题及处理意义

题目描述 有n张卡片,分别标有数字1~n.有一天Silence把他们按某种序列排好,然后从第一张开始取出一张,再拿一张放到最后面,再取出一张,再拿出一张放到最后面...知道n张卡片全部取走.把取出的卡片按取出的顺序排好,正好是1,2,3,4,....,n. 现在,告诉你n,Silence希望你帮他计算原来的序列的逆序数. 例如,n=4时,原来的序列应该是1,3,2,4.这样,先取出卡片1,再把卡片3放到最后面,序列变成了2,4,3.再把2取出来,4放到后面,序列变成了3,4.再把3取出来,4放最

从浏览器打开网址到请求到网页内容超细原理过程详解(免费)

从浏览器打开网址到请求到网页内容超细原理过程详解 史上最牛逼相关知识学员讲解! 看完了不服来战! http://edu.51cto.com/course/course_id-6075.html 长江后浪来了...100米高大浪! 最牛逼老男孩教育28期学员开班2个月左右的分享讲解,不看不知道,一看吓尿你! 运维Q群385168604 架构师Q群390642196 PythonQ群29215534大数据Q群421358633

使用SpringMVC参数传递时,解决get请求时中文乱码的问题

问题描述: 使用SpringMVC参数传递时, 遇到get请求中文信息时,页面应答会显示中文乱码. 解决办法: 一,  我们需要把request.getParameter(“参数名”)获取到的字符串先用ISO-8859-1编码成字节流,然后再将其用utf-8解码成字符流,代码如下: String str = new String(request.getParameter("参数名").getBytes("iso-8859-1"), "utf-8"

Java httpclient请求,解决乱码问题

public class HttpPostRequestUtil { public HttpPostRequestUtil() { } public static String post(String url, Map<String, String> maps) { // 第一步,创建HttpPost对象 HttpPost httpPost = new HttpPost(url); // 设置HTTP POST请求参数必须用NameValuePair对象 List<NameValuePa