Url字符转义

博客介绍了URL字符转义的原因,当表单用get方法提交且参数含特殊符时,为让服务端准确取值需转义。阐述了转义原理,即把特殊字符转换成ASCII码,格式为%字符的ASCII码。还给出了字符转义的示例。

一、为何进行URL字符转义
如果你的表单使用get方法提交,并且提交的参数中有“&”等特殊符的话,如果不做处理,在service端就会将&后面的作为另外一个参数来看待。因此,需要对url字符进行转义。
例如表单的action为list.jsp?act=go&state=5 则提交时通过request.getParameter可以分别取得act和state的值。 如果你的本意是act='go&state=5’这个字符串,那么为了在服务端拿到act的准确值,你必须对&进行转义
二、URL转义字符的原理——将特殊字符转换成ASCII码
格式:%字符的ASCII码,即一个百分号%,后面跟对应字符的ASCII(16进制)码值。
ASCII码表
空格的ASCII值(16进制)
例:空格的ASCII值(16进制)为20,则空格的编码值为%20。
三、有哪些字符需要转义?

特殊字符ASCII值(16进制)URL编码值
空格(0)20%20
+2B%2B
/ 分隔目录和子目录2F%2F
? 分隔实际的URL和参数3F%3F
% 指定特殊的字符25%25
+2B%2B
# 书签23%23
&指定参数的分隔符26%26
=3D%3D
换行LF0A%0A
回车CR0D%0D
四、实例

china
Content-Length: 0

HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 47

< html>Insert undesireable content here< /html>

则其转义字符串为:
china%0d%0aContent-Length:%200%0d%0a%0d%0aHTTP/1.1%20200%20OK%0d%0aContent-Type:%20text/html%0d%0aContent-Length:%2047%0d%0a%0d%0a
< html >Insert undersireable content here< /html >

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值