我如何使用 zlib 在 C 中压缩并在 golang 中解压缩

how do I use zlib to compress in C and uncompress in golang

所以我一直在尝试将一些数据从 C 转换为压缩并发送到 golang 中的库,在那里将解压缩。 唯一的问题是,它们之间的实现似乎略有不同。

我所做的是使用 C 中的 "zlib.h" 库来压缩字符串 "hello",结果是

字节
[120 156 203 72 205 201 201 103 32 5]

而在 golang 中,对于相同的字符串 "hello" 结果是

的数组
[120 156 202 72 205 201 201 7 4 0 0 255 255 6 44 2 21]

我的问题是是否有办法使这些输出相似,是什么方法?或者至少可以在 zlib 中解压缩 C 中的压缩数据?

我也看过 How can I use zlib in golang to cooperate with zlib in c?,但我正在寻找更具体的内容,例如示例。

比较压缩数据不会告诉您任何信息。不同的压缩器,或同一压缩器的不同版本,或使用不同设置的相同版本,都可以为相同的输入提供不同的压缩输出。无损压缩器真正重要的是你能不能解压到原始数据。

你的第一个例子的问题是它不完整。 (第二个示例完整且正确。)第一个示例在 deflate 块的中间结束。您对 zlib 的使用存在错误,要么是在管理生成的数据时,要么是没有正确请求完成压缩。