JS编码和解码,escape()、encodeURI()、encodeURIComponent()区别详解

参考:https://www.cnblogs.com/bingcola/p/7447568.html
原文更详细

大纲

JavaScript中有三个对字符串编码方式
编码函数:
escape encodeURI encodeURIComponent
解码函数:
unescape decodeURI decodeURIComponent 

1. escape 不是同一类

escape()是对字符串(string)进行编码;
encodeURI、encodeURIComponent 是对URL编码;

编码之后的效果是%XX或者%uXXXX这种形式,其中 ASCII字母、数字、@*/+ ,这几个字符不会被编码。

2. encodeURI()和encodeURIComponent()

都是编码URL

区别是编码的字符范围不同

encodeURI:不会对 ASCII字母、数字、~!@#$&*()=:/,;?+’ 编码;
encodeURIComponent:不会对 ASCII字母、数字、~!*()’ 编码。

例如:

encodeURI('https://www.baidu.com/')           //"https://www.baidu.com/"
encodeURIComponent('https://www.baidu.com/')  //"https%3A%2F%2Fwww.baidu.com%2F"

可以看到两者区别就是encodeURI,不转’: / ',encodeURIComponent可以。

猜你喜欢

转载自blog.csdn.net/weixin_35773751/article/details/124618128