请求编码
-------------------------------------------------------
客户端:如果你是点击链接发送到服务器,则使用的是utf-8编码
TOmcat服务器:默认使用ISO解码
------------------
客户端:
1)如果你是点击链接发送到服务器,则使用的是编码同服务器的响应编码(最大可能是UTF-8)【由服务端决定】
客户端首先要打开一个页面,然后在页面中提交表单或点击超链接!在请求这个页面时,服务器响应的编码是什么,那么客户端发送请求时的编码就是什么。
2)你直接在地址栏打汉字,发送请求,则使用的是GBK编码。【由浏览器决定】
-----------------
TOmcat服务器:
默认使用ISO解码,会出现乱码。需要根据客户端编码,自己设置解码方式。
GET和POST的请求方式不同,所以解码方式也不同,GET请求参数不在请求体中,而POST请求参数在请求体中。
请求编码处理分为两种:GET和POST。
1) GET请求编码处理:【参数在请求体外】
> 在server.xml中配置URIEncoding=utf-8 【该方式需要改动Tomcat服务器,非常不好】
GET解码如下:
String username =request.getParameter(“name”);
byte[] bytes = name.getBytes("ISO-8859-1"); // 得到bytes。、用bytes通过设定的编码utf-8 得到utf-8解码
name = new String(bytes,"utf-8");
2) POST请求编码处理:【最简单】【因为在请求体内】
a)在获取参数之前调用request.setCharacterEncoding("utf-8"); /./ 设置解码格式为utf-8
b)String username =request.getParameter(String name);
POST解码如下
a)request.setCharacterEncoding("utf-8");
b)String username =request.getParameter(String name);
----------------------------------------------------------------------------------------------