我有一个名为enc
的base64编码文件。我可以通过命令行确认它是gzip格式:
$ cat enc | base64 -D | gzcat
未压缩的文字显示正常。
但是,此代码无效:
const zlib = require('zlib');
const fs = require('fs');
const inp = fs.readFileSync('enc');
const buf = Buffer.from(inp, 'base64');
zlib.gunzip(buf, (err, buffer) => {
console.log(err, buffer);
});
抛出此错误:
Error: incorrect header check
at Zlib._handle.onerror (zlib.js:370:17) errno: -3, code: 'Z_DATA_ERROR'
我不明白我在哪里出错了。
答案 0 :(得分:1)
我认为读取文件时的数据可能是错误的原因。那么下面的修改呢?
const inp = fs.readFileSync('enc');
console.log(err, buffer);
const inp = fs.readFileSync('enc', 'utf-8');
console.log(err, buffer.toString());
如果我误解了你的问题,我很抱歉。