encodeURI和encodeURIComponent区别

这两个函数都是js中用来对uri进行编码的函数,区别在于处理的范围不同:

1、相同点:

ASCII字母、数字、-_.!~*'()

以上字符均不会进行编码

2、不同点:

;/?:@&=+$,#

encodeURI不编码

encodeURIComponent会编码

总结:encodeURIComponent编码的范围比较大

实际测试地址:https://www.bejson.com/enc/urlencode/

测试用例:

abc;/?:@&=+$,#-_.!~*'()

测试结果:


参考资料:

https://www.w3school.com.cn/js/jsref_encodeuri.asp

https://www.w3school.com.cn/js/jsref_encodeURIComponent.asp