为什么需要对URI进行编码?
对于Url来说,之所以要进行编码,是因为Url中有些字符会引起歧义。
一般来说,URL只能使用英文字母、阿拉伯数字和某些标点符号,不能使用其他文字和符号。这是因为网络标准RFC 1738做了硬性规定:
原文:"...Only alphanumerics [0-9a-zA-Z], the special characters "$-_.+!*'()," [not including the quotes - ed], and reserved characters used for their reserved purposes may be used unencoded within a URL."
翻译:“只有字母和数字[0-9a-zA-Z]、一些特殊符号“$-_.+!*'(),”[不包括双引号]、以及某些保留字,才可以不经过编码直接用于URL。”
但是该网络标准却没有规定说怎么进行编码,交给了浏览器来自己来控制,浏览器目前的一个通用做法是除了a-zA-Z0-9.-_以外,都进行%替换。
三种编码方式的介绍
Javascript中提供了3对函数用来对Url编码以得到合法的Url,它们分别是

