url编码和解码

star

url为什么要编码

URL只能使用一些相对较小的、通用的安全字母表中的字符。人们设计了一种编码机制,用来在URL中表示各种不安全的字符。这种编码机制就是通过一种“转义”表示法来表示不安全字符的,这种转义表示法包含一个百分号(%),后面跟着两个表示字符ASCII码的十六进制数。

下面列出了几个例子。
编码示例

保留字符与限制字符

在URL中,有几个字符被保留起来,有着特殊的含义。有些字符不在定义的US-ASCII可打印字符集中。还有些字符会与某些因特网网关和协议产生混淆,因此不赞成使用。下面列出了一些字符,在将其用于保留用途之外的场合时,要在URL中对其进行编码。
保留字符

编码和解码方法

encodeURI 和 decodeURI 函数操作的是完整的 URI;这俩函数假定 URI 中的任何保留字符都有特殊意义,所以不会编码它们。
encodeURIComponent 和 decodeURIComponent 函数操作的是组成 URI 的个别组件;这俩函数假定任何保留字符都代表普通文本,所以必须编码它们,因为它们(保留字符)出现在一个完整 URI 的组件里面时是不会被解释成保留字符。

encodeURI("https://segmentfault.com/write")
//返回结果"https://segmentfault.com/write"
encodeURIComponent("https://segmentfault.com/write")
//返回结果"https%3A%2F%2Fsegmentfault.com%2Fwrite",编码后因为保留字符被编译了所以这个结果不能作为url地址了

一图总览

阅读 1.2k

小菜鸟成长记录

32 声望
2 粉丝
0 条评论

小菜鸟成长记录

32 声望
2 粉丝
文章目录
宣传栏