gpt4 book ai didi

iOS compression_encode_buffer 不包含 zlib header ?

转载 作者:搜寻专家 更新时间:2023-10-30 22:13:59 24 4
gpt4 key购买 nike

我正在使用 compression_encode_bufferCOMPRESSION_ZLIB 在 iOS 应用程序中对数据进行 zlib 压缩,但结果缺少 zlib header 。

例如:

size = compression_encode_buffer(
destinationBuffer, destinationBufferSize,
sourceBuffer, sourceBufferSize, nil,
COMPRESSION_ZLIB
)

将返回字节:

AD 53 C1 8E 9B 30 …

例如,在相同数据上使用 Python 的 data.encode("zlib") 时将返回:

78 9C AD 53 C1 8E 9B 30 …
^^ ^^ correct zlib header

这是怎么回事?为什么不包含 header ?是否有“正确”的添加方式?

最佳答案

这两个字节是 zlib header ,而不是魔数(Magic Number)。很可能您也丢失了流的最后 4 个字节(ADLER32 校验和),并且只有您希望包装在 zlib 数据流中的“缩小”数据流。 iOS documentation说了这么多:

ZLIB
The encoded format is the raw DEFLATE format as described
in IETF RFC 1951 Using the ZLIB library

他们应该将压缩方法称为“DEFLATE”而不是“ZLIB”。

查看此 related question关于处理 ZLIB 与 DEFLATE 数据。

关于iOS compression_encode_buffer 不包含 zlib header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35279687/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com