本文讨论如何对传递参数用JS编码与解码

  1. 编码与解码方法的对应关系
    escape ——————– unescape

encodeURI ——————– decodeURI

encodeURIComponent ——————– encodeURIComponent

  1. 解码与编码方法用法

    1
    2
    3
    var value1=escape('1²');
    var getValue1=unescape(value1);
    //encodeURI ,decodeURI,encodeURIComponent ,encodeURIComponent 用法和escape,unescape用法都是一样的。
  2. 三种编码方法的区别和联系

  • 编码方式:encodeURI ,encodeURIComponent 都是采用UTF-8进行对参数编码,而escape 则不是。
  • 不会被编码的字符:encodeURI 不对:”:”、”/“、”;” 和 “?”字符进行编码。
  • 用法场合:escape 不对URL进行编码,如果要对URL进行编码,应该使用encodeURI 或者encodeURIComponent ,对应的解码方法也是这样。
    推荐使用的方法顺序:encodeURIComponent –encodeURI –escape 。
    注意:用encodeURIComponent 、encodeURI 在前台编码后的字符串,可以直接在后台用Java解码的方式URLDecoder.decode(val,”UTF-8”);进行解码,原因是这两个方法本身就是以UTF-8进行编码的。用起来很方便。