URL解码编码

URL解码结果
encodeURI编码,不会对特殊符号编码
encodeURIComponent编码方式,会对特殊符号编码
URL编码相关说明

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

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

对Url进行编码后可以将一些特殊字符和汉字变为Encode编码格式,encodeURIComponent编码的范围更广,会将http://XXX中的//也编码,会导致URL不可用。

一般来说,我们使用encodeURIComponent()方法的时候要比使用encodeURI()更多,因为在实践中更常见的是对查询字符串参数而不是对基础URL进行编码。