响应编码、请求编码与URL编码

本文详细介绍了常见的字符编码格式,包括iso-8859-1、gbk和utf-8,并探讨了HTTP响应与请求过程中的编码设置方法。针对GET与POST请求的不同特性,提供了编码转换的解决方案。

编码

常见字符编码:iso-8859-1(不支持中文)、gbk(系统默认编码,中国的国标码)、utf-8(万国码)

响应编码

当使用response.getWriter()来向客户端发送字符数据时,如果在之前没有设置编码,那么默认使用iso
一般浏览器会把数据当成gbk
reponse.setCharacterEncoding("utf-8"):设置响应编码
response.setHeader("Content-Type","text/html;charset=utf-8");:告诉浏览器用什么编码,还会设置setCharacterEncoding
(简洁方法response.setContentType("text/html;charset=utf-8");(写在getWriter()之前))

请求编码

客户端在页面中提交表单或点击超链接。在发送请求时,服务器发送该页面的编码是什么,客户端就用什么编码发送请求。但服务端默认使用ISO-8859-1来解码
POST请求:
只需在获取参数值前调用request的setCharacterEncoding("utf-8"),之后便可获取参数String name = request.getParameter("username");

get请求:
URI默认使用IOS-8859-1编码
法一:可以设置Tomcat文件中conf/server.xml中<Connector>标签内设置URI编码,可解决乱码问题(但是不建议使用)

这里写图片描述

法二:获取参数String name = request.getParameter("username");
反编码
byte[] bytes = name.getBytes("ISO-8859-1");
name = new String(bytes,"utf-8");
(Tomcat8之后版本get直接使用UTF-8编码,不需要转换,但post仍需转换)

URL编码

表单的类型:Content-Type:application/x-www-form-urlencoded,这种方式可以把非英文在客户端和服务器之间传递时转换成网络适合的方式
它不是字符编码
它是用来在客户端与服务器之间传递参数的一种方式
GET请求中的中文没有URL编码,可能会出现丢失字节,所以需要把链接中的中文参数使用url编码
POST请求(使用表单)使用URL编码,Tomcat会自动解码
URL编码String username = URLEncoder.encode(username,"utf-8");
URL解码String username = URLDecoder.decode(username,"utf-8");
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值