request和response编码

response:默认使用iso-8859-1编码对消息体进行编码,传送数据给客户端。

****响应头固定使用iso-8859-1编码;

服务器设置编码使用:setCharacterEncoding("uft-8");
告知浏览器解码格式:setheader("content-type","text/html;charset=utf-8");由于浏览器和服务器都按固定的格式去编码解码头部信息,所以,头部可以附加消息体的编码方式。
两者可以简化为:setcontentType("text/html;charset=utf-8")
*****response中响应头中的参数,浏览器默认使用gbk解码。上述方式无效
 例如:response.addHeader("Content-Disposition", "attachment;filename="filename");
filename需要转码成gbk编码。 byte[] b = filename.getBytes("gbk2313");
filename = new string(b,'iso-8859-1'); 
 
 
request:在地址栏中直接传参数默认使用UTF-8
其它方式提交数据,默认使用当前面页使用的编码格式。
*****请求的解码由服务器完成,一定要注意服务器的解码方式与客户端请求编码方式一致。
服务器指定编码解码:
服务器对于post方式,可以使用request.setCharacterEncording("utf-8")方式指定解码方式为utf-8
对于get方式,浏览器固定使用iso-8859-1方式编码,服务器只能使用编码解码。new String(request.getparam("name").getBytes("iso-8859-1"),"utf-8")

posted on 2018-05-02 11:22  sxfinfo  阅读(1358)  评论(0编辑  收藏  举报