忽然想起来遇到了这个参数编码和解码的问题
我开始用encodeURI编码,
发现对特殊字符<>,.什么的都可以 但是对&符号就不行,然后去查了一下发现了encodeURIComponent
encodeURI和encodeURIComponent都是对url的编码
它们都是编码URL,唯一区别就是编码的字符范围了:
encodeURI方法不会对下列字符编码 ASCII字母、数字、~!@#$&*()=:/,;?+'
encodeURIComponent方法不会对下列字符编码 ASCII字母、数字、~!*()'
所以encodeURIComponent比encodeURI编码的范围更大。
当你要编码整个URL,使用这个URL,那么用encodeURI
当你要编码URL中的参数的时候,那么encodeURIComponent是最好方法
查到了具体的
escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z
encodeURI不编码字符有82个:!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z
encodeURIComponent不编码字符有71个:!, ',(,),*,-,.,_,~,0-9,a-z,A-Z
对应的解码方法
decodeURI
decodeURIComponent