Итак, у меня есть некоторые данные, которые были сжаты с помощью метода PHP gzcompress:
http://us2.php.net/manual/en/function.gzcompress.php
Как я могу декодировать эти данные из node.js ??
Я пробовал "compress", "zlib" и несколько других библиотек сжатия узлов, но ни одна из них, похоже, не распознает данные. Например, zlib просто выдает мне «Ошибка: неверная проверка заголовка»
Ответ: Оказывается, "zlib" - это путь. У нас была дополнительная проблема с двоичными данными из memcache. Если у вас есть двоичные данные в объекте Buffer для node.js и вы вызываете toString () вместо .toString ('binary'), он получает все виды шифрования, поскольку вещи экранированы или экранированные последовательности интерпретируются или что-то еще. К сожалению, все плагины memcache, которые я пробовал на сегодняшний день, предполагают наличие строковых данных из memcache и не дисциплинированы в отношении их правильной обработки.
Лучший модуль 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:
Функция PHP gzuncompress в Java?