编码方式: escape,encodeURI,encodeURI
2021-03-27 本文已影响0人
phoebe__liu
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"
第一次用到时在传"合同链接"时用到的,这里记录下加深印象