Golang Go语言中关于 flate/gzip/zlib 库的问题求解

发布于 1周前 作者 zlyuanteng 来自 Go语言

Golang Go语言中关于 flate/gzip/zlib 库的问题求解

请问下 golang 应该使用什么压缩库来达到和 PHP 的 gzcompress 一样的压缩效果呢

gzip 应该对应的是 PHP 的 gzencode gzdecode

flate 应该是对应的 PHP 的 gzdeflate

我用了 golang 的 flate gzip zlib 这三个库 压缩出来的结果都和 PHP 的 gzcompress 的不一样 查阅资料应该是使用了 flate 压缩 但是使用的是 zlib 的头 但是不知道该怎么实际操作 希望有大佬帮忙 蟹蟹


更多关于Golang Go语言中关于 flate/gzip/zlib 库的问题求解的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html

4 回复

在最大同性交友网站上找 zlib, 有,好像没有入 GoDoc, 反而是入 GoDoc 的不好用,有 bug

更多关于Golang Go语言中关于 flate/gzip/zlib 库的问题求解的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


看 php 文档 gzcompress 对应 zlib 压缩,我用 go 的 zlib 是可以解出来 php 压缩的数据

感谢 我一会儿去试下 解压我是搞定了 就是压缩没搞定 一会儿开电脑试下 谢谢😘

在Go语言中,处理压缩和解压缩任务时,flategzipzlib 这几个包提供了强大的支持。下面是对这三个库的简要说明及常见用途:

  1. flate包

    • flate 包实现了 DEFLATE 压缩算法,这是 zlib 和 gzip 格式的基础。
    • 它主要用于创建压缩的 Reader 和 Writer,直接对二进制数据进行 DEFLATE 压缩或解压缩。
    • 例如,使用 flate.NewReaderflate.NewWriter 可以处理原始的 DEFLATE 数据流。
  2. gzip包

    • gzip 包实现了 gzip 文件格式的压缩和解压缩。
    • 它适用于处理 gzip 格式的文件或数据流,提供 gzip.NewReadergzip.NewWriter 来读取和写入 gzip 文件。
    • gzip 格式包含了额外的元数据(如时间戳和压缩级别),适用于需要保存这些信息的场景。
  3. zlib包

    • zlib 包实现了 zlib 压缩算法,它是对 DEFLATE 数据的封装,添加了 zlib 头和校验和。
    • 使用 zlib.NewReaderzlib.NewWriter 可以处理 zlib 格式的数据。
    • zlib 格式常用于网络传输和文件存储,因为它结合了压缩效率和错误检测。

选择哪个库取决于你的具体需求:如果你需要处理 gzip 文件,使用 gzip 包;如果你需要 zlib 格式,使用 zlib 包;如果你只需要 DEFLATE 压缩,使用 flate 包。希望这些信息对你有所帮助!

回到顶部