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

使用JavaScript解压GZIP字符串时pako报incorrect header check如何解决

错误原因

你拿到的压缩字符串是先经过GZIP压缩、再经过Base64编码得到的文本结果,你直接使用TextEncoder.encode处理,只是把Base64文本的每个字符转成了UTF-8字节,并没有得到真正的GZIP二进制流,因此pako无法识别到合法的GZIP头,抛出incorrect header check错误。

正确处理步骤

需要先把Base64编码的字符串解码为原始的GZIP二进制数据,再传给pako解压。

浏览器环境代码示例

import { ungzip } from 'pako';

const base64GzipStr = "H4sIAAAAAAAA//NIzcnJVyguSUzOzi9LLUrLyS/XUSjJSMzLLlZIyy9SSMwpT6wsVshIzSnIzEtXBACs78K6LwAAAA==";
// 1. 解码Base64得到二进制字符串
const binaryStr = atob(base64GzipStr);
// 2. 转成pako可识别的Uint8Array格式
const gzipData = Uint8Array.from(binaryStr, c => c.charCodeAt(0));
// 3. 解压,配置to: 'string'直接返回字符串结果
const result = ungzip(gzipData, { to: 'string' });

console.log('解压结果:', result);

Node.js环境代码示例

const { ungzip } = require('pako');

const base64GzipStr = "H4sIAAAAAAAA//NIzcnJVyguSUzOzi9LLUrLyS/XUSjJSMzLLlZIyy9SSMwpT6wsVshIzSnIzEtXBACs78K6LwAAAA==";
// 直接用Buffer解码Base64
const gzipData = Buffer.from(base64GzipStr, 'base64');
const result = ungzip(gzipData, { to: 'string' });

console.log('解压结果:', result);

运行上述代码后可以得到解压后的内容:Hello, this is a test content。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 16:54:02