node-archiver 压缩包的中文文件名变乱码
在 koa 中使用 node-archiver 模块进行打包压缩
const zip = archiver('zip');
zip.pipe(fs.createWriteStream('1.zip'));
const file = '1 - 副本.log';
zip.append(fs.createReadStream(file), {
// 命名中含有中文
name: file
})
await zip.finalize();
在服务器端打包压缩,提供前端下载,文件名含有中文的话,下载下来解压,文件名乱码(需求是必须保留原文件名):
请问有没有大佬知道如何解决?
5 回复
推荐 iconv-lite。
@xadillax 我试了 iconv.decode(file, ‘gbk’) ,变了更乱的码了。。是不是用错了
- 可能zip不支持中文名宽字节编码
- 可能服务器压缩采用的是utf8编码,客户端解码时采用的本地编码(gbk)导致乱码
@waitingsong 我换了用 adm-zip 模块,也是会这样,不知道有没有办法解决?
最后升级了电脑的 WinRAR 软件就可以了。。。