700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > nodejs adm-zip 解压文件 中文文件名乱码

nodejs adm-zip 解压文件 中文文件名乱码

时间:2022-04-07 04:18:26

相关推荐

nodejs adm-zip 解压文件 中文文件名乱码

最近的一个项目需要上传zip文件到服务器,然后解压到当前目录,最初选用unzip包进行解压,开始使用的时候不知道这个包有监听函数,认为完全是同步的。实际是有完成解压监听函数的。使用adm-zip的时候是同步的,满足需要,但是如果文件夹种有中文文件名的时候在windows下压缩的文件解压出来会出现中文乱码。换了decompress-zip也不能解决这个问题,最后是修改了adm-zip的源码解决的,但是没有做源文件的编码探测,可能会出现在不同系统下会出现问题。

修改文件地方:

原始代码:

_entryName = Utils.toBuffer(val);var lastChar = _entryName[_entryName.length - 1];_isDirectory = (lastChar == 47) || (lastChar == 92);_entryHeader.fileNameLength = _entryName.length;

修改后代码:

var nameTemp = iconv.decode(val, 'GBK');_entryName = Utils.toBuffer(val);var lastChar = _entryName[_entryName.length - 1];_isDirectory = (lastChar == 47) || (lastChar == 92);_entryHeader.fileNameLength = _entryName.length;_entryName = nameTemp;

修改需要使用到 iconv-lite包,修改 zipEntry.js 文件种的 entryName 方法就可以了

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。