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"