中文数据的请求和响应-03-08

请求

在例如登陆界面的功能中,可能会出现需要发送中文数据给服务器进行处理。而由于Browser与Service的编码格式不同,所以会出现乱码。Browser请求的默认编码格式为ISO8859-1,不支持中文。

所以需要进行转码。详解,太长了,看完都不知道讲了啥
转码方式一:将每个参数都进行转码

name = new String(req.getParameter("uname").getBytes("ISO-8859-1"), "UTF-8");
中文数据的请求和响应-03-08_第1张图片
啪啪啪打脸

说好的浏览器发送请求使用IOS-8859-1的呢?明明是用utf-8的嘛!
算了。

方式二:公共配置,设置编码方式(get请求和post请求不同)
get请求:1.在tomcat中配置,conf目录下,service.xml中的Connector标签,将添加属性(标签的尖括号里面加)useBodyEncodingForURI=“true”,表示请求参数和请求实体使用同样的编码格式,(请求参数:一般get请求发出,在url中;请求实体,post请求发出的数据,应该是请求对象中请求头,请求行,请求主体的请求主体吧)
讲了一下底层的代码没怎么看懂,好像还有个EncodingURI的属性
EncodingURI和useBodyEncodingForURI的区别讲的很清楚
大概就是说EncodingURI="UTF-8"是设置uri中的解码的,好吧,看不懂,还是不知到他们俩的区别。

2.在servlet中设置编码格式
req.setCharacterEncoding("utf-8");

post请求:
只需要在servlet中设置编码格式即可。
req.setCharacterEncoding("utf-8");

这里我就不尝试了,因为chrome好像直接用了utf-8的编码方式

响应

中文数据的请求和响应-03-08_第2张图片
响应设置编码

你可能感兴趣的:(中文数据的请求和响应-03-08)