我应该使用什么编码来" gzuncompress()"在node.js?

时间:2016-10-26 11:32:08

标签: javascript php node.js

我将我的代码从PHP转换为node.js,我需要将代码的一部分转换为gzuncompress()函数。

为此,我使用zlib.inflateSync。但我不知道我应该使用哪种编码来创建缓冲区,以便 php的相同的结果

这是我用php解压字符串的方法:

gzuncompress(substr($this->raw, 8))

以及我在node.js中尝试过的内容

zlib.inflateSync(new Buffer(this.raw.substr(8), "encoding"))

那么我应该使用编码来使zlib.inflateSync返回与gzuncompress相同的数据?

1 个答案:

答案 0 :(得分:1)

我不确定这里的确切编码是什么,但是此仓库有一些针对node.js(https://github.com/gamalielmendez/node-fpdf/blob/master/src/PHP_CoreFunctions.js)的PHP翻译。根据此回购协议,可以进行以下操作:

const gzuncompress = (data) => {
    const chunk = (!Buffer.isBuffer(data)) ? Buffer.from(data, 'binary') : data
    const Z1 = zlib.inflateSync(chunk)
    return Z1.toString('binary')//'ascii'
}