首页 > 其他分享 >js使用escape编码、unescape解码、

js使用escape编码、unescape解码、

时间:2022-12-30 10:00:59浏览次数:43  
标签:编码 stringify unescape escape js JSON key playitemArr

 一、js使用escape编码

编码前

//编码前的JSON.stringify(playitemArr)"
console.error("编码前的JSON.stringify(playitemArr)");
 console.error(JSON.stringify(playitemArr));

实例数据如图:--【playitemArr为一个数组,数组序列化后并编码前的结果】 var playitemArr = new Array();

 编码后

//编码后的escape(JSON.stringify(playitemArr))
 console.error("编码后的");
 console.error(escape(JSON.stringify(playitemArr)));

实例数据如图:

出现错误: 

当前本人通过编码需要在js的ajax请求传参给另一个页,只经过上面 escape(JSON.stringify(playitemArr))将数组序列化并解码后传递会出现错误

 错误如图:

问题:
在做页面搜索功能的时候,需要URL地址中拼接查询关键字(key),然后 跳转到拼接后的地址(https://xxx.com/search?q=key)。如果key里面有中文字,浏览器会默认编码掉,所以这个页面调查询接口的时候需要先解码(/api/search?content=解码后的key),出现了上面的错误。

原因:
查询关键字包含一些浏览器敏感的关键词,例如:# , & , =,而导致报错的是 % ,是因为编码汉字是 % 开头的,多加一个 % 会导致 decodeURIComponent 执行报错。

 

解决:

在点击查询拼接关键字key的时候,对key中含有敏感的词进行转译,例如,将%号转译为 %25

其他一些关键字的编码对应为:

特殊字符     含义          编码
%      指定特殊字符        %25
#      表示锚点          %23
&      URL Search分隔符      %26
=      URL中指定参数的值      %3D

解决:--替换特殊字符

 console.error(escape(JSON.stringify(playitemArr)).replace(/%/g, '%25'));

 错误问题解决;

二、js使用unescape解码

 

标签:编码,stringify,unescape,escape,js,JSON,key,playitemArr
From: https://www.cnblogs.com/ZhuMeng-Chao/p/17014130.html

相关文章

  • nodejs express multer 中文名乱码【转】
    文件上传服务器端接收的文件列表中文件名不支持中文,都是乱码,查询发现nodejs对中文支持的不好。找了半天,发现这个解决方法确实有效!!!!!核心代码//解决中文名乱码的问题f......
  • P1198 JSOI2008 最大数
    P1198JSOI2008最大数-洛谷|计算机科学教育新生态(luogu.com.cn)采用ST表维护RMQ。对于插入操作,设插入后数列长度变为\(n\),我们只需重新修改满足\(i+2^j-......
  • JS Date
    镇楼图Pixiv:torinoDate构造DateJS中Date提供了时间日期相关的操作Unix时间戳:指自1970年1月1日00:00:00UTC开始经过的毫秒数,为一整数值,这也是大多数编程语言......
  • JS高级
    this指向分析指向直接调用,指向window通过对象调用,指向对象call/apply总结:跟位置无关,跟调用方式有关。只有在执行的时候this指向才会被确定绑定规则:默认......
  • JS对象
    声明对象方式对象字面量varobj1={name:'xx',age:88,}newObject()varobj2=newObject()obj2.name='xx'new自定义类functionPerson(){}varobj3......
  • JS事件
    事件处理三种方案元素上el.onclickwindow.addEventListener(fn)事件流事件冒泡:默认情况下事件是从最内层往外传递的顺序,这个顺序就称为事件冒泡事件捕获:从外层到......
  • JS中回调函数的概念
    概要:Js中回调函数的概念...个人理解:回调函数的定义:将一个函数作为参数的形式传入另一个函数中,那么这个函数就是回调函数,另一个函数可以决定在何时何处调用这个传入的回......
  • JS数据在内存中的存储方式
    概要:Js数据类型在内存中的存储形式......Js数据类型:简单数据类型(基本数据类型):Number、String、Boolean、Undefined、Null复杂数据类型(引用数据类型):Object、Array、Fu......
  • JS中闭包的概念
    概要:Js中闭包的概念...个人理解:js中闭包的定义......
  • JS中的arguments和args
    概要:学习express中间件原理时候遇到的arguments对象和...args形参,从一脸懵逼到简单认识...引言:最近在学习express框架的中间件原理时候遇到了一系列问题,让我总算是明白了......