首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在JavaScript中解压缩Gzip缓冲区

问在JavaScript中解压缩Gzip缓冲区
EN

Stack Overflow用户
提问于 2016-12-05 14:00:55
回答 2查看 1.3K关注 0票数 1

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

代码语言:javascript
复制
gzcompress(serialize($slot[$i]['advanced_details']),8)

我试过了: zlib.Gunzip,来自炮拉链

但它会抛出:

代码语言:javascript
复制
{ [Error: incorrect header check] errno: -3, code: 'Z_DATA_ERROR' }

全缓冲这里

我的代码:

代码语言:javascript
复制
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);
                }
            });

我做错了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-12-06 03:06:10

你的格式很混乱。PHP中函数的可怕命名助长了您的混乱。PHP的gzcompress()生成zlib格式,node.js的gunzip则期望使用gzip格式。您可以在PHP中使用gzencode()来生成gzip格式,也可以使用node.js的zlib.inflate来解压缩zlib格式。

票数 2
EN

Stack Overflow用户

发布于 2018-11-19 13:22:05

我试图缩小shell命令的json输出。没有编码就太长了。

我到达的解决方案是:

代码语言:javascript
复制
$content = ['sample', 'data'];

$data = base64_encode(gzencode(
    json_encode($content, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP | JSON_UNESCAPED_UNICODE),
    8,
    FORCE_DEFLATE
));

// then send $data to node

并检索Node中的数据:

代码语言:javascript
复制
const zlib = require('zlib');

let data = zlib.inflateSync(new Buffer(data.min, 'base64')).toString();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40976027

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档