go 爬虫乱码

爬支付宝的账户,发现乱码了

看了下,看他head头部, GBK编码的。

如果不解析不提取里面的信息,直接修改响应头w.Header().Set("Content-Type", "application/json;charset=GBK")返回的就是正常的了。

--Tip
我刚开始是对比控制台"Accept-Encoding", "gzip,deflate",gzip压缩, 是不是浏览器是压缩传输,但是爬虫不是,就是就解压,,,唔, 失败了。。

回正题
有一个github.com/axgle/mahonia包,可以实现多种编码
go get github.com/axgle/mahonia

Code:

import (
  "github.com/axgle/mahonia"
)

// 编码
func ConvertToString(src string, srcCode string, tagCode string) string {
    srcCoder := mahonia.NewDecoder(srcCode)
    srcResult := srcCoder.ConvertString(src)
    tagCoder := mahonia.NewDecoder(tagCode)
    _, cdata, _ := tagCoder.Translate([]byte(srcResult), true)
    result := string(cdata)
    return result
}

...

// 编码转换
bodystr = ConvertToString(bodystr, "gbk", "utf-8")

相关链接:
https://github.com/axgle/mahonia
http://blog.csdn.net/qq_33285730/article/details/73239263

你可能感兴趣的:(go 爬虫乱码)