本文讨论如何对传递参数用JS编码与解码
- 编码与解码方法的对应关系
escape ——————– unescape
encodeURI ——————– decodeURI
encodeURIComponent ——————– encodeURIComponent
- 解码与编码方法用法
1
2
3var value1=escape('1²');
var getValue1=unescape(value1);
//encodeURI ,decodeURI,encodeURIComponent ,encodeURIComponent 用法和escape,unescape用法都是一样的。 - 三种编码方法的区别和联系
- 编码方式:encodeURI ,encodeURIComponent 都是采用UTF-8进行对参数编码,而escape 则不是。
- 不会被编码的字符:encodeURI 不对:”:”、”/“、”;” 和 “?”字符进行编码。
- 用法场合:escape 不对URL进行编码,如果要对URL进行编码,应该使用encodeURI 或者encodeURIComponent ,对应的解码方法也是这样。
推荐使用的方法顺序:encodeURIComponent –encodeURI –escape 。
注意:用encodeURIComponent 、encodeURI 在前台编码后的字符串,可以直接在后台用Java解码的方式URLDecoder.decode(val,”UTF-8”);进行解码,原因是这两个方法本身就是以UTF-8进行编码的。用起来很方便。