1、 encodeURI
不会对下列字符编码 ASCII字母、数字、~!@#$&*()=:/,;?+'
2、encodeURIComponent
不会对下列字符编码 ASCII字母、数字、~!*()'
总结:encodeURIComponent编码的范围更广,会将http://XXX中的//也编码,会导致URL不可用
在JavaScript中推荐的做法是
用encodeURI对URI的网址部分编码,用encodeURIComponent对URI中传递的参数进行编码。
3、 escape(string) 函数 (不推荐使用)
这个方法是针对字符串使用的,不适用于URL。
escape是对字符串(string)进行编码(而另外两种是对URL),作用是让它们在所有电脑上可读。
编码之后的效果是%XX或者%uXXXX这种形式。
其中 ASCII字母、数字、@*/+ ,这几个字符不会被编码,其余的都会。