关于编码

 
encodeURIComponent('中国人')    ==>
"%E4%B8%AD%E5%9B%BD%E4%BA%BA"
encodeURI('中国人');      ==>
"%E4%B8%AD%E5%9B%BD%E4%BA%BA"
 
区别(参考资料--W3Cschool.com):
 
encodeURIComponent() 函数 与 encodeURI() 函数的区别之处,前者假定它的参数是 URI 的一部分(比如协议、主机名、路径或查询字符串)。因此 encodeURIComponent() 函数将转义用于分隔 URI 各个部分的标点符号。
 
encodeURIComponent(String)
不编码字符有 71 个: !  '  (  )  *  -  .  _  ~  0-9  a-z  A-Z 
encodeURI()
不编码字符有 82 个: !  #  $  &  '  (  )  *  + ,,, -  .  /  :  ;  =  ?  @ _  ~  0-9  a-z  A-Z 
 
再看一例:
escape('http://127.0.0.1:8080/?debug=true&tn=中国人')    ==>
"http%3A//127.0.0.1%3A8080/%3Fdebug%3Dtrue%26tn%3D%u4E2D%u56FD%u4EBA"
 
encodeURIComponent('http://127.0.0.1:8080/?debug=true&tn=中国人')   ==>
"http%3A%2F%2F127.0.0.1%3A8080%2F%3Fdebug%3Dtrue%26tn%3D%E4%B8%AD%E5%9B%BD%E4%BA%BA"
 
反转
decodeURI('%E4%B8%AD%E5%9B%BD%E4%BA%BA')   ==>
"中国人"
decodeURIComponent("%E4%B8%AD%E5%9B%BD%E4%BA%BA")   ==>
"中国人"
 
escape('中国人')   ==>
"%u4E2D%u56FD%u4EBA"
原文地址:https://www.cnblogs.com/longze/p/3232875.html