爬支付宝的账户,发现乱码了
看了下,看他head头部<meta charset="GBK" />
, 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
网友评论