uni-app plus.zip.decompress解压有中文名称的大zip文件时报错
uni-app plus.zip.decompress解压有中文名称的大zip文件时报错
操作步骤:
- 使用uni开发app,用的是5+的plus.zip.decompress方法,解压附件中的压缩包会报错,里面有中文文件名的文件
预期结果:
- 正常解压,并且覆盖同目录下原来的内容
实际结果:
- 报错{“code”:2,“message”:“MALFORMED[1]”},中文名的文件没有解压出来
bug描述:
- plus.zip.decompress解压大文件的时候或者压缩包中有中文文件的时候,会提示{“code”:2,“message”:“MALFORMED[1]”}
信息类别 | 信息内容 |
---|---|
产品分类 | uniapp/App |
PC开发环境 | Windows |
PC开发环境版本 | win7 |
HBuilderX类型 | 正式 |
HBuilderX版本 | 3.1.8 |
手机系统 | Android |
手机系统版本 | Android 8.0 |
手机机型 | 小米或者其他android手机都必现 |
页面类型 | vue |
打包方式 | 云端 |
项目创建方式 | HBuilderX |
更多关于uni-app plus.zip.decompress解压有中文名称的大zip文件时报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html
1 回复
更多关于uni-app plus.zip.decompress解压有中文名称的大zip文件时报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html
这是一个典型的编码问题。plus.zip.decompress在处理中文文件名时容易出现MALFORMED[1]错误,主要是因为压缩包内的文件名编码与解压时的编码不匹配。
解决方案:
-
重新压缩文件:使用支持UTF-8编码的压缩工具(如7-Zip、Bandizip)重新创建压缩包。在压缩时确保选择UTF-8编码格式,特别是包含中文文件名时。
-
检查压缩包完整性:确保源压缩包没有损坏,可以通过其他解压工具验证是否能正常解压。
-
路径处理:在代码中确保目标路径正确,避免路径中包含特殊字符。建议使用绝对路径进行解压操作。
-
文件大小限制:虽然错误信息未直接提示大小问题,但大文件解压时建议分步处理或确保设备存储空间充足。
示例代码调整:
plus.zip.decompress(src, dest, (result) => {
if(result.code === 0) {
console.log('解压成功');
} else {
console.log('解压失败:' + JSON.stringify(result));
}
});