1. escape 和 unescape
escape()不能直接用于URL编码。
采用unicode字符集对指定的字符串除0-255以外进行编码。
escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z。(不推荐:我在使用aes加密时,出现了+,此时不能编译,后端无法解析就很麻烦了)
unescape就是解码。
2. encodeURI 和 decodeURI
把URI字符串采用UTF-8编码格式转化成escape各式的字符串。
encodeURI不编码字符有82个:!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z
encodeURI()用于整个url编码,与上边的区别就是可以直接编译整个url链接,但是局限性也一样,有一些字符不能编译。
3. encodeURIComponent 和 decodeURIComponent(推荐)
与encodeURI()的区别是,它用于对URL的组成部分进行个别编码,而不用于对整个URL进行编码。
因此,"; / ? : @ & = + $ , #",这些在encodeURI()中不被编码的符号,在encodeURIComponent()中统统会被编码。
encodeURIComponent() 常用于参数的传递,这样就不会因为一些特殊字符造成后端无法解析。