You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用zlib.inflate返回unknown compression method错误如何解决

问题原因

你的报错核心原因是 zlib.inflate 方法不支持直接传入十六进制字符串作为压缩输入,需要先将十六进制字符串转换为二进制Buffer后再传入解压。
直接传入十六进制字符串时,zlib会将字符串的每个字符的ASCII编码作为原始二进制数据解析,你的压缩数据开头789c是标准zlib头,直接传字符串的话第一个字节会被解析为字符7的ASCII码0x37,不符合zlib格式要求,因此抛出未知压缩方法错误。

修正后的代码
const zlib = require('zlib');
var input = '789cbbd4280db30fb8f699713317440477e510defe4d38253d6a0ea4be1827e701da47911820d6d331f5b5f16f8411ed346ebebbc65549c99915b2a5457956a565c999560686566e41566191fe7ebe8eeee101518166ca9149c9f940dd4929798c4929255946064686ba06a6bac6864999c529ce7e8ebe49b989b9fe41eeba860606169817c0016ea2e81ca13d0c4e0340c7d65a56eb903a329014d8046ad8d7390f86e506e3117c4c4f0080af284fcedcfa04a0301bdd7e94fca42c434b0b4b5d03635d038be4bcc4dc25496979692ea101fe7e2149e979293e9ec1aec969792550a1e4f4bc128858596a51aaa19eb19e418443e79480e5bbee3bc74c3c7c3161cf938683e902979c97af2a7cf95f725bcc93899d67168d48f3efe45ffcc6bc31703761a00a65790ad5168efc7199865633280d2eb34c3cae9e86ea1389169a005a22708d'
// 先把十六进制字符串转成Buffer
const inputBuffer = Buffer.from(input, 'hex');
zlib.inflate(inputBuffer, (err, buffer) => {
    if (!err) {
        // 如果原始内容是文本,建议用 buffer.toString('utf8') 输出明文
        console.log(buffer.toString('hex'));
    } else {
        console.log(err)
    }
})
额外注意事项
  • 如果你拿到的是不带zlib头的raw deflate压缩数据,可以换成zlib.inflateRaw方法执行解压
  • 其他格式的输入(比如base64编码的压缩数据)也要先转成二进制Buffer再传入zlib相关方法

内容的提问来源于stack exchange,提问作者Julius Goddard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 09:39:02