为什么要对URI进行编码?

传递数据中,如果存在用作分隔符的保留字符应该怎么办?

对可能产生歧义性的数据编码

如:

https://www.baidu.com/s?wd=?#!

https://www.baidu.com/s?wd=冯小圆    博客

https://www.baidu.com/s?wd=小圆 ‘>博客

保留字符与非保留字符

保留字符:

reserved = gen-delims / sub-delims

  • gen-delims = ":" / "/" / "#" /  "[" / "]" / "@"
  • sub-delims = "!" / "$" / "&" / "'" / "(" / ")" / "*" / "+" / "=" / ";" / ","

非保留字符:

unreserved = APLHA / DIGIT / "-" / "_" / "." / "~"

  • APLHA :%41-%5A and %61-%7A
  • DIGIT:%30-%39
  • -: %2D .:%2E  _:%5F
  • ~: %7E ,某些实现将其认为保留字符

百分号编码方式:

pct-encoded  =  "%" HEXDIG HEXDIG

对于HEXDIG  十六进制中的字母,大小写等价

非ASCII码字符(例如中文):建议先UTF-8编码,再 US-ASCII 编码

对于URI合法的字符,编码和不编码是等价的

例如,"URI转换"既可以是"URI%e8%bd%ac%e6%8d%a",也可以"%55%52%49%e8%bd%ac%e6%8d%a"

转载于:https://www.cnblogs.com/fengxiaoyuan/p/10927419.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值