unzip(b64Data){
var strData = atob(b64Data); // 这里生成的数据打印出来长度和数据都是错的
console.log(strData.length)
},
![urnotun](https://img-cdn-tc.dcloud.net.cn/account/identicon/88974bb1d34a7c9bdd91f95e740d2bb5.png)
- 发布:2020-08-20 09:35
- 更新:2023-02-16 10:33
- 阅读:1637
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: 10
HBuilderX类型: 正式
HBuilderX版本号: 2.8.6
手机系统: Android
手机系统版本号: Android 6.0
手机厂商: 三星
手机机型: SM-G900F
页面类型: vue
打包方式: 云端
项目创建方式: HBuilderX
示例代码:
操作步骤:
'''
b64Data = "Nwun3puFT3SKXq7SaRvR/917zRX/td+Nh+Aq460X9NF4fhdovA5uVPSMTbsosbBD7l3SYFD/Auhr0bDLBQAA"
var data = atob(b64Data)
console.log(data)
console.log(data.length)
'''
'''
b64Data = "Nwun3puFT3SKXq7SaRvR/917zRX/td+Nh+Aq460X9NF4fhdovA5uVPSMTbsosbBD7l3SYFD/Auhr0bDLBQAA"
var data = atob(b64Data)
console.log(data)
console.log(data.length)
'''
预期结果:
data.length == 63
data.length == 63
实际结果:
data.length == 58
data.length == 58
bug描述:
对收到的base64数据解压处理,原始数据含中文,第一步调用原生的atob()进行处理。
当使用安卓机器真机运行的话,atob()算出来的数据长度比正常的要少。同一台安卓设备,同样的数据,如果进入手机调试界面重新运行的话,atob()算出来的数据是对的。ios、内置浏览器不会存在这个问题。
3 个回复
lihailan - xue
这问题也反应了,都没人解决
DCloud_Android_DQQ
HX版本 3.0.0 bug已修复
lihailan
APP是正常了,小程序真机 atob 报错。用不了。模拟器是正常的,用小米真机 又出错
2021-03-11 15:48
DCloud_Android_DQQ
回复 lihailan: 微信小程序?
2021-03-11 17:03
lihailan
回复 DCloud_Android_DQQ: 嗯 是的。模拟器上 是有数据的。但是用真机预览 模式。atob 出错
2021-03-12 10:25
lihailan
回复 lihailan: 真机调试 显示 atob is not a function 是小程序 不兼容?
2021-03-12 10:42
DCloud_Android_DQQ
回复 lihailan: 问了相关同事。 应该是有的。 你测试一下 微信原生有没有问题。 如果原生如果有 给wx报个bug.
2021-03-12 10:56
lihailan
回复 DCloud_Android_DQQ: 刚处理好了,谢谢
2021-03-12 11:21
4***@yesep.com
回复 lihailan: 怎么处理的,一样问题?
2021-05-11 10:14
g***@163.com
回复 lihailan: 怎么处理的?共享下呗
2021-10-16 08:21
靖詟 - WhitePeng
小程序用weAtob