JavaScript上的Python Zlib.compress和zlib.inflate

时间:2017-04-16 18:14:42

标签: javascript python

我正在尝试在Python中压缩字符串并在JavaScript中解压缩它。

在Python中压缩字符串:

import zlib, base64

text = "Test string"
result = base64.b64encode(zlib.compress(text.encode("utf-8"))

在JavaScript中:

const zlib = require('zlib');

var data = atob(<text encoded in base64 from Python>);
zlib.inflate(data, function(err, buffer){
    if(!err){
        // doing something
    }
    else{
       console.log(err); // <-- Error: data error: incorrect header check
    }
});

在JavaScript中,它返回&#34;不正确的标题检查&#34;错误。我应该如何在Python中压缩数据以在JavaScript中获得相同的zlib.inflate()值?

非常感谢任何帮助或建议!

1 个答案:

答案 0 :(得分:0)

您在javascript代码中将字符串传递给zlib.inflate,但它需要Buffer个实例。

var data = Buffer.from('eJwLSS0uUSguKcrMSwcAGWAEWA==', 'base64')

zlib.inflate(data, function(err, buffer) { 
    if (!err) {
       console.log(buffer.toString()); 
    } else {
       console.log(err); 
    } 
})

Test string