【问题标题】:What's the encoding should I use to "gzuncompress()" in node.js?我应该在 node.js 中对“gzuncompress()”使用什么编码?
【发布时间】:2016-10-26 11:32:07
【问题描述】:

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

为此,我使用zlib.inflateSync。但我不知道我应该使用哪个 encoding 来创建 buffer 以便获得 php 的 same 结果强>

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

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

这是我在 node.js 中尝试过的

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

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

【问题讨论】:

标签: javascript php node.js


【解决方案1】:

我不确定这里的确切编码是什么,但是这个 repo 有一些针对 node.js (https://github.com/gamalielmendez/node-fpdf/blob/master/src/PHP_CoreFunctions.js) 的 PHP 翻译。根据这个 repo,以下方法可以工作:

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

【讨论】:

    猜你喜欢
    • 2015-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-04
    • 2012-12-03
    • 2021-10-24
    • 2014-04-02
    • 2019-10-12
    相关资源
    最近更新 更多