Zlib膨胀方法无法正常工作

zlib inflate method not working as expected

本文关键字:工作 常工作 膨胀 方法 Zlib      更新时间:2023-10-16

这是用于充气的代码:

z_ret = inflate(&oStream, Z_SYNC_FLUSH); 

z_ret每次返回Z_DATA_ERROR

根据zlib网页:

Z_DATA_ERROR表示inflate()检测到ZLIB压缩数据格式中的错误,这意味着数据不是Zlib流的开始,或者由于它被压缩而沿途损坏了数据。

另外,数据可能会被特定的deflate词典压缩,Zlib将需要该词才能充气。如果是这种情况,则根据我提到的链接:

...我们不知道字典是什么,因此Z_NEED_DICT指示被转换为Z_DATA_ERROR

我本人并没有使用Zlib很多,但是这暗示您要么拥有损坏的数据,要么没有足够的信息来解压缩。


edit :查看了莎莎的评论,并对您的代码进行了更多检查,因此尚不清楚这是实际问题。您不说出z_ret失败时CC_7的值。