javascript - 在 JavaScript 中解压缩 Gzip 缓冲区

标签 javascript php node.js zlib gunzip

我有一个由 php 函数 gzcompress 压缩的数据缓冲区,我需要在 js (nodejs) 中解压缩它。

gzcompress(serialize($slot[$i]['advanced_details']),8)

我已经尝试过来自https://nodejs.org/api/zlib.html#zlib_class_zlib_gunzip的类:zlib.Gunzip

但它抛出:

{ [Error: incorrect header check] errno: -3, code: 'Z_DATA_ERROR' }

满缓冲区here

我的代码:

nodeZlib.gunzip(rows[0]['Slot'+(i+1)+'AdvancedDetails'], 8, function(error, data) {
                if(!error) {
                    console.log = data.toString();
                } else {
                    console.log('Error unzipping:');
                    console.log(error);
                }
            });

我做错了什么?

最佳答案

您的格式令人困惑。 PHP 中可怕的函数命名会加剧您的困惑。 PHP 的 gzcompress() 生成 zlib 格式,而 Node.js 的 gunzip 需要 gzip 格式。您可以在 PHP 中使用 gzencode() 来生成 gzip 格式,也可以使用 Node.js 的 zlib.inflate 来解压缩 zlib 格式。

关于javascript - 在 JavaScript 中解压缩 Gzip 缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40976027/

相关文章:

javascript - 仅获取匹配项,而不是整个条目

javascript - 将大整数数组从 javascript 传输到 Flask 的优化方法,反之亦然

php - 通过 jQuery/Ajax 调用 PHP 页面

Javascript这个扑克直检测功能可以优化吗?

angularjs - 在 Mac 上安装 Node.js 和 npm 时遇到困难

javascript - 在 Node 中 app 所需的文件中使用 app var

javascript - Jquery Tablesorter 过滤器和外部选择框

javascript - React 组件的简单转换

php - SQLite3::query语法错误

PHP 准备好的语句 - 无法从数据库检索字符串