H5和安卓转义问题


问题记录

1. 问题描述

嵌入到APP中的H5页面在获取原生APP拿到的二维码串时出现了个别字符转义的问题,但是在IOS手机上并没有出现此问题。

2. 问题解决

了解到安卓手机传给H5的JSON串在底层做了转义,如果传给H5的JSON串不做转义的话,在传值的时候就会有问题,存在传递不过来的情况,因此H5对这一转义过的字符串又再一次进行转义,其实也就是还原。

3. 解决方案
function reductStr(str){
    let code = str.replace(/%25/g,'%') // 安卓对%做了转义
    code = code.replace(/%20/g,' ') 
    code = code.replace(/%2B/g,'+') 
    code = code.replace(/%23/g,'#') 
    code = code.replace(/%26/g,'&') 
    code = code.replace(/%3D/g,'=') 
    code = code.replace(/%7B/g,'{') //安卓对{做了转义
    code = code.replace(/%7D/g,'}') //安卓对}做了转义
    code = code.replace(/%22/g,'"') //安卓对"做了转义,一般不会涉及到这个引号,这里也写出来,防止后续用到时漏掉
   return code
}

从上述函数可以看到一般项目中,安卓对字符串的转义一般只会做上述有注释的几种。没有注释的则是在日常JS转义中也会经常遇到的,%25的那个除外,这个是我们最常见的转义字符


文章作者: dreamITGirl
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 dreamITGirl !
 上一篇
字典和散列表 字典和散列表
欢迎大家访问我的博客,不要吝啬你们的小星星,点个star~ 有问题的话,你可以将问题在留言板留言问我.
2022-04-13
下一篇 
H5跳转问题记录 H5跳转问题记录
欢迎大家访问我的博客,不要吝啬你们的小星星,点个star~ 有问题的话,你可以将问题在留言板留言问我.
2022-03-21
  目录