goquery 中文乱码

乱码的情况目前有两种可能:

  • 常规乱码,网页非utf-8。
  • 非常规乱码,代码导致的乱码。

goquery中文乱码

关于常规乱码可参考issue获取中文网页有乱码的问题 #185 非常规乱码就像我遇到的一样,最开始以为是网页问题,使用了github.com/djimenez/iconv-go转换还是乱码,使用了golang.org/x/text/encoding/simplifiedchinese还是乱码。 试试英文网页,还是乱码。最终一点点调试发现是由header引起的。 req.Header.Add("Accept-Encoding", "gzip, deflate") 这一行的作用是告诉服务器浏览器要接收的数据编码是gzip,dflate,到达浏览器后会自动解码。但是我们的代码并非浏览器,不会自动解码,所以接收到的就是非常规的压缩数据。