JS通过decodeURIComponent函数解码
在我们调⽤后台接⼝的时候,如果后端传过来的字段是编码过的,那需要使⽤decodeURIComponent函数进⾏解码显⽰
console.log(encodeURIComponent(test1));//编码
console.log(decodeURIComponent(test1));//解码
除此之外,在js中还有另外2种进⾏编解码的⽅法escape,encodeURI,对应的解码函数unescape,decodeURI,区别如下:
1、传递参数时需要使⽤encodeURIComponent,这样组合的url才不会被#等特殊字符截断。
例如:
3、 js使⽤数据时可以使⽤escape
例如:搜藏中history纪录。
4、 escape对0-255以外的unicode值进⾏编码时输出%u****格式,其它情况下escape,encodeURI,en
codeURIComponent编码结果相同。
最多使⽤的应为encodeURIComponent,它是将中⽂、韩⽂等特殊字符转换成utf-8格式的url编码,所以如果给后台传递参数需要使⽤encodeURIComponent时需要后台解码对utf-8⽀持(form中的编码⽅式和当前页⾯编码⽅式相同)
escape不编码字符有69个:,+,-,.,/,@,_,0-9,a-z,A-Z
encodeURI不编码字符有82个:!,#,$,&,',(,),,+,,,-,.,/,:,;,=,?,@,,~,0-9,a-z,A-Z encodeURIComponent不编码字符有71个:!, ',(,),*,-,.,,~,0-9,a-z,A-Z
总结:
在线url网址编码解码通过对三个函数的分析,我们可以知道:escape()除了 ASCII 字母、数字和特定的符号外,对传进来的字符串全部进⾏转义编码,因此如果想对URL编码,最好不要使⽤此⽅法。⽽encodeURI() ⽤于编码整个URI,因为URI中的合法字符都不会被编码转换。encodeURIComponent ⽅法在编码单个URIComponent(指请求参数)应当是最常⽤的,它可以讲参数中的中⽂、特殊字符进⾏转义,⽽不会影响整个URL。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。