修改需要使用到iconv-lite包 (npm安装即可),修改 zipEntry.js 文件中的 entryName 方法
var iconv = require('iconv-lite');
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;// 新增
上面那种方法处理文件名正常了,结果文件内容中文还是乱码。发现另一个好用的插件
npm install adm-zip-iconv
使用方法比较简单比上面那种方法好些。
var zip = new AdmZip("./my_file.zip", "GBK");