URL解码编码

URL 编码/解码

RFC3986 协议对 URL 的编解码问题做出了详细的建议,指出了哪些字符需要被编码才不会引起 URL 语义的转变,以及对为什么这些字符需要编码做出了相应的解释。

RFC3986 协议规定 URL 只允许包含以下四种字符:
1、英文字母(a-zA-Z)
2、数字(0-9)
3、-_.~ 4个特殊字符
4、所有保留字符,RFC3986 中指定了以下字符为保留字符(英文字符): ! * ' ( ) ; : @ & = + $ , / ? # [ ]

本工具使用了 JavaScript 的 decodeURIComponent 方法进行解码,encodeURI 和 encodeURIComponent 方法进行编码。

encodeURI 方法不会对ASCII字母、数字、~!@#$&*()=:/,;?+' 编码。
encodeURIComponent 方法不会对ASCII字母、数字、~!*()' 编码。
可见 encodeURIComponent 比 encodeURI 编码的范围大。
因此当你需要编码整个 URL,就用 encodeURI。
如果只需要编码 URL 中的参数时,就使用 encodeURIComponent。