encodeURI
与 encodeURIComponent
都是对 URI 进行编码的,由于 URI 仅支持 ASCII 字符,对于一些特殊的字符需要进行编码,例如汉字、&
、?
等有意义的特殊符号。
encodeURI
不会对~!@#$&*()=:/,;?+'
这些特殊字符进行编码encodeURIComponent
不会对~!*()'
这些特殊字符进行编码
数字与字母(0-9,a-z,A-Z)是不会被编码的,_-.~!*'()
这些字符也不会被编码 。可以观察到二者的区别是 encodeURIComponent
会对更多的字符进行编码,而 encodeURI
对有些特殊字符不会编码,如 &, :, /
。