我有一个由php函数gzcompress压缩的数据缓冲区,我需要用js (nodejs)解压缩它。
gzcompress(serialize($slot[$i]['advanced_details']),8)我试过了: zlib.Gunzip,来自炮拉链
但它会抛出:
{ [Error: incorrect header check] errno: -3, code: 'Z_DATA_ERROR' }全缓冲这里
我的代码:
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);
}
});我做错了什么?
发布于 2016-12-06 03:06:10
你的格式很混乱。PHP中函数的可怕命名助长了您的混乱。PHP的gzcompress()生成zlib格式,node.js的gunzip则期望使用gzip格式。您可以在PHP中使用gzencode()来生成gzip格式,也可以使用node.js的zlib.inflate来解压缩zlib格式。
发布于 2018-11-19 13:22:05
我试图缩小shell命令的json输出。没有编码就太长了。
我到达的解决方案是:
$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中的数据:
const zlib = require('zlib');
let data = zlib.inflateSync(new Buffer(data.min, 'base64')).toString();https://stackoverflow.com/questions/40976027
复制相似问题