nodejs adm-zip 解压文件 中文文件名乱码 问题解决
修改需要使用到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");