编码方式: escape,encodeURI,encodeURIComponent

escape对字符串(string)进行编码

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

var a = escape("")
// "%u7B80%u4E66"
解码
unescape(a)
//

encodeURI和encodeURIComponent对URL进行编码,也是最常用的

区别: 编码的字符范围
encodeURI方法不会对下列字符编码 ASCII字母 数字 ~!@#$&()=:/,;?+'encodeURIComponent方法不会对下列字符编码 ASCII字母 数字 ~!()'所以encodeURIComponent比encodeURI编码的范围更大。

encodeURI

var b = encodeURI('https://www.jianshu.com/jian s hu')
//  "https://www.jianshu.com/jian%20s%20hu"
解码
decodeURI(b) 
//"https://www.jianshu.com/jian s hu"

encodeURIComponent

 encodeURIComponent('https://www.jianshu.com/jian s hu')
//"https%3A%2F%2Fwww.jianshu.com%2Fjian%20s%20hu"

当需要用到编码URL中的参数时,encodeURIComponent是最合适的。

var param = "http://www.jianshu.com/?a=1$b=2"; //param为参数
param = encodeURIComponent(param);
var url = "http://www.baidu.com?url=" + param;
console.log(url)
// http://www.baidu.com?url=http%3A%2F%2Fwww.jianshu.com%2F%3Fa%3D1%24b%3D2
解码param
decodeURIComponent(param)
// "http://www.jianshu.com/?a=1$b=2"

第一次用到时在传"合同链接"时用到的,这里记录下加深印象

你可能感兴趣的:(编码方式: escape,encodeURI,encodeURIComponent)