我将我的代码从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
相同的数据?
答案 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'
}