URL只能使用一些相对较小的、通用的安全字母表中的字符。人们设计了一种编码机制,用来在URL中表示各类不安全的字符。这种编码机制就是经过一种“转义”表示法来表示不安全字符的,这种转义表示法包含一个百分号(%),后面跟着两个表示字符ASCII码的十六进制数。segmentfault
下面列出了几个例子。安全
在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"