美文网首页
escape、encodeURI和encodeURICompon

escape、encodeURI和encodeURICompon

作者: liuniansilence | 来源:发表于2018-05-29 10:39 被阅读0次

    escape对字符串(string)编码,另外两种对url进行编码。

    escape

    这几个字符不会被编码:ASCII字母、数字、@*/+ ,其余的都会。

    encodeURI

    不会对下列字符编码 ASCII字母、数字、~!@#$&*()=:/,;?+'

    encodeURIComponent

    不会对下列字符编码 ASCII字母、数字、~!*()'
    所以encodeURIComponent比encodeURI编码的范围更大。

    使用场合

    • 如果只是编码字符串,不和URL有半毛钱关系,那么用escape。
    • 如果你需要编码整个URL,然后需要使用这个URL,那么用encodeURI。
    // 编码前
    "http://www.cnblogs.com/season-huang/some other thing"
    // encodeURI编码后
    "http://www.cnblogs.com/season-huang/some%20other%20thing"
    // encodeURIComponent编码后
    "http%3A%2F%2Fwww.cnblogs.com%2Fseason-huang%2Fsome%20other%20thing"
    

    注意:encodeURI编码后,空格也会被编码;encodeURIComponent编码后,连协议后面的冒号和双斜杠也会被编码。这时候,url已经没法用了。

    • 当你需要编码URL中的参数的时候,那么encodeURIComponent是最好方法。
    var param = "http://www.cnblogs.com/season-huang/"; //param为参数
    param = encodeURIComponent(param);
    var url = "http://www.cnblogs.com?next=" + param;
    console.log(url) ;
    //"http://www.cnblogs.com?next=http%3A%2F%2Fwww.cnblogs.com%2Fseason-huang%2F"
    

    带在参数后的url地址,必须要用encodeURIComponent来编码。

    相关文章

      网友评论

          本文标题:escape、encodeURI和encodeURICompon

          本文链接:https://www.haomeiwen.com/subject/xauojftx.html