输入流编码转换为utf8

输入流编码转换为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())

你可能感兴趣的:(输入流编码转换为utf8)