跳到主要内容
CNode

node-archiver 压缩包的中文文件名变乱码

问答
Llin-xin发布于 8 年前最后回复 8 年前
546560

在 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();

在服务器端打包压缩,提供前端下载,文件名含有中文的话,下载下来解压,文件名乱码(需求是必须保留原文件名):

TIM截图20180328171020.png

请问有没有大佬知道如何解决?

查看回复

回复 (5)

L
lin-xin#58 年前

最后升级了电脑的 WinRAR 软件就可以了。。。

L
lin-xin#48 年前
W
waitingsong#38 年前
  • 可能zip不支持中文名宽字节编码
  • 可能服务器压缩采用的是utf8编码,客户端解码时采用的本地编码(gbk)导致乱码
L
lin-xin#28 年前
引用 XadillaX推荐 iconv lite。

@xadillax 我试了 iconv.decode(file, 'gbk') ,变了更乱的码了。。是不是用错了

X
XadillaX#18 年前

推荐 iconv-lite

参与回复

登录后即可参与回复。登录