从Gmail API获取Base64附件,zlib解压报incorrect header check错误如何解决
解决zlib解压"incorrect header check"错误的方案
已知Base64解码正常,出现Error -3 while decompressing data: incorrect header check错误,可通过以下方式排查修复:
- 适配原始deflate数据:如果Gmail附件的压缩数据是不带zlib头的原始deflate格式,直接调用
zlib.decompress()会因为缺少头部校验字段报错。修改代码,添加wbits=-15参数跳过头部校验:ffiles = zlib.decompress(ffiles, wbits=-15) - 切换压缩算法:若附件采用gzip而非zlib压缩,替换解压方法为
gzip.decompress():import gzip # 替换原zlib解压行 ffiles = gzip.decompress(ffiles) - 验证数据格式:打印解码后数据的前2个字节,确认压缩格式:
- zlib格式头通常是
0x78 0x01、0x78 0x9C或0x78 DA - gzip格式头固定为
0x1F 0x8B
- zlib格式头通常是
内容的提问来源于stack exchange,提问作者Robin Bjoern Platte
相关产品推荐
相关产品推荐

