PHP中的node.js中的gzuncompress函数

所以我有一些使用PHP的gzcompress方法压缩的数据: http : //us2.php.net/manual/en/function.gzcompress.php

我怎样才能从node.js解码这个数据?

我已经尝试了“压缩”,“zlib”和其他几个节点压缩库,但是他们都没有重新识别这些数据。 例如,zlib只是给我“错误:不正确的标题检查”

答案:原来“zlib”是要走的路。 我们有一个来自memcache的二进制数据的问题。 如果你有一个node.js Buffer对象的二进制数据,你调用toString()而不是.toString('binary'),它会得到各种各样的东西被转义或转义序列被解释或什么。 不幸的是,我尝试过的所有memcache插件都假定从memcache获取string数据,并且没有正确处理它的规则。

我find的最好的ZLIB模块:

https://github.com/kkaefer/node-zlib

// first run "npm install zlib", then... var zlib = require('zlib'); var gz = zlib.deflate(new Buffer("Hello World", 'binary')); // also another 'Buffer' console.log(zlib.inflate(gz).toString('binary')); 

仅供参考,这个问题是非常相似的有关Java的一个相关的问题: 在Java中的PHP的gzuncompress函数?

从另一个post偷窃( 在PHP中使用哪种压缩方法? )

  • gzencode()使用完全自包含的gzip格式,与gzip命令行工具相同
  • gzcompress()使用原始的ZLIB格式。 它与gzencode相似,但是头文件数据不同,等等。我认为它是用于stream媒体的。
  • gzdeflate()自己使用原始的DEFLATEalgorithm,这是其他格式的基础。

因此,“zlib”将是正确的select。 这不与gzip交叉兼容。

试试https://github.com/kkaefer/node-zlib