go http返回结果乱码问题

3,027 阅读1分钟

今天用go写了一个脚本,然后返回结果变成了这样:

弄了好久,以为返回的不是UTF8编码格式,然后找了一个gbk库去解析

然后还是乱码。

最后还是Google了一下。

发现是因为我发请求的时候,使用了gzip压缩。

所以调用的请求返回结果也使用了gzip压缩。

又因为 go 的 http 库没有自动解压导致的!

手动解压解决了这个问题:

代码

reader, _ := gzip.NewReader(res.Body)
result, _ := ioutil.ReadAll(reader)