共计 647 个字符,预计需要花费 2 分钟才能阅读完成。
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"
正文完