写在前面
组成 URL(全称:Uniform Resource Locator,缩写:URL;或称统一资源定位器、定位地址、URL地址,俗称网页地址或简称网址)字符是有限的,URL编码就是为了解决这个问题的。
比如
https://zh.wikipedia.org/wiki/哈
URL编码后
https://zh.wikipedia.org/wiki/%e5%93%88
URL编码,又称百分号编码,是特定上下文的统一资源定位符 (URL)的编码机制,实际上也适用于统一资源标志符(URI)的编码。
编码原理
URL所允许的字符分作保留与未保留。
- 保留: 字符是那些具有特殊含义的字符,例如:斜线字符用于URL不同部分的分界符;
- 未保留: 字符没有这些特殊含义。
上述情形随URL的不同版本规格会有轻微的变化。

URL中的其它字符必须用百分号编码。
编码规则:转换为UTF-8字节序, 然后每个字节前面放置转义字符("%")
比如:编码“~”(UTF8在编码ASCII码时,通过一个字节来编码ASCII码同时也保持其值一致)
第一步,转换UTF8编码:7e(ASCII码也是:7e)
第二步,URL编码:%7e
比如,编码“哈”
第一步,转换UTF8编码:e59388
第二步,URL编码:%e5%93%88
注意:
- UTF8 是用来编码 Unicode 码的;
- 如果URL保留字符是有上下含义,可以对其进行百分号编码,比如:
name=va&lue
,编码之后name=va%26lue
,这样解析之后name
的值就是va&lue
,如果不编码值就是va
;
网友评论