【发布时间】:2019-04-10 00:02:21
【问题描述】:
我有一个包含 gzip 压缩字符串的字符串,因此没有文件头,标准 compress/gzip 库抛出错误 gzip: invalid header
如何在 go 中解压 gzip 压缩的字符串?
这就是我正在尝试的
nbody := "eNorTk0uSi0BAAjRAoc="
rdata := strings.NewReader(nbody)
r,err := gzip.NewReader(rdata)
log.Println(r)
if err != nil {
log.Fatal(err)
}
s, _ := ioutil.ReadAll(r)
fmt.Println(string(s))
【问题讨论】:
-
eNorTk0uSi0BAAjRAoc=- 这不是“gzip 字符串”。这是 zlib 编码的(zlib 不是 gzip,它基本上只是 deflate 编码内容前面的不同标头),然后是另外的 base64 编码,所以你需要先从 base64 解码,然后使用 zlib 解压缩而不是gzip解压。 -
我们是否可以重新命名这个问题,使其不会出现在谷歌搜索中?