输入流编码转换为utf8
2018-04-12 本文已影响81人
Ugly_K
输入流编码转换为utf8
在爬虫项目中经常遇到爬取到内容并非为utf8编码格式,需要转换为utf8
1.导入包
我们需要这个包:
go get golang.org/x/text
2.编码确认
//获取指定输入流的编码格式
func determineEncoding(r *bufio.Reader)
encoding.Encoding {
//获取输入流的前1024字节
bytes, err := r.Peek(1024)
if err != nil {
log.Printf("Fetcher error %v", err)
return unicode.UTF8
}
//判断编码格式
e, _, _ := charset.DetermineEncoding(bytes, "")
return e
}
3.编码转换
//获取编码格式
bodyReader := bufio.NewReader(resp.Body)
e := determineEncoding(bodyReader)
//切换到UTF-8格式
utf8Reader := transform.NewReader(bodyReader, e.NewDecoder())