Node.js gunzip没有按预期工作

时间:2017-09-08 00:53:08

标签: node.js gzip

我有一个名为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'

我不明白我在哪里出错了。

1 个答案:

答案 0 :(得分:1)

我认为读取文件时的数据可能是错误的原因。那么下面的修改呢?

来自:

const inp = fs.readFileSync('enc');

console.log(err, buffer);

致:

const inp = fs.readFileSync('enc', 'utf-8');

console.log(err, buffer.toString());

如果我误解了你的问题,我很抱歉。