比如用http.Get() 获取某个网页的编码是GBK, 但是go使用的是utf-8 , 这个时候就需要转换
func main() {
url := "xxx网站"
resp, err := http.Get(url)
if err != nil {
panic(err)
}
defer resp.Body.Close()
if resp.StatusCode != http.StatusOK {
fmt.Println("Error: status code", resp.StatusCode)
return
}
all, err := ioutil.ReadAll(resp.Body)
if err != nil {
panic(err)
}
fmt.Printf("%s \n", all)
}
使用golang.org/x/text 包进行处理
// 将收到的GBK内容转换成utf-8
utf8Reader := transform.NewReader(resp.Body, simplifiedchinese.GBK.NewDecoder())
// 将对应格式文本转换成utf-8
func DecodeEncoding(r io.Reader) *transform.Reader {
e := determineEncodeing(r)
return transform.NewReader(r, e.NewDecoder())
}
// 判断传输来的文本的字符集格式是什么
func determineEncodeing(r io.Reader) encoding.Encoding {
peek, err := bufio.NewReader(r).Peek(1024)
if err != nil {
panic(err)
}
determineEncoding, _, _ := charset.DetermineEncoding(peek, "")
return determineEncoding
}
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有