编码、解码对应方式部分梳理

一、js编码,js解码
1、测试
1)escape与unescape
var str = 'a#$1212+xjk爱国者';
var encodeStr = window.escape(str) ;
console.log(encodeStr);  //a%23%241212+xjk%u7231%u56FD%u8005
var decodeStr = window.unescape(encodeStr);
console.log(decodeStr);  //a#$1212+xjk爱国者
2)encodeURI与decodeURI
var str = 'a#$12-12+xjk爱国者_abc|de*';
var encodeStr = window.encodeURI(str) ;
console.log(encodeStr);  //a#$1212+xjk%E7%88%B1%E5%9B%BD%E8%80%85
var decodeStr = window.decodeURI(encodeStr);
console.log(decodeStr);  //a#$1212+xjk爱国者
3)encodeURIComponent与decodeURIComponent
var str = 'a#$1212+xjk爱国者';
var encodeStr = window.encodeURIComponent(str) ;
console.log(encodeStr);  
var decodeStr = window.decodeURIComponent(encodeStr);
console.log(decodeStr);
2、结论
1)3组js编码、解码的方式对应使用,最终解码后都会原封不动的还原
2)3组编码方式对比:
  escape不会对数字、字母及部分符号(如“+”)进行编码;
  encodeURI只会对中文进行编码;
  encodeURIComponent会进行彻底的编码
二、js编码,java解码
1、测试
1) js:encodeURI编码,java :decode解码
经测试,解码后原字符串中的特定符号无法还原,如“+”;
2) js:js:encodeURIComponent编码,java:decode解码
经测试,解码后原字符串可完全还原(可能测试不完全,但是可以肯定的是比encodeURI编码更具兼容性,实际开发中建议先测试特殊字符后再使用)
2、结论
建议使用js:encodeURIComponent编码,java:URLDecoder.decode(str,"UTF-8")解码

你可能感兴趣的:(编码,解码)