golang学习笔记之-采集gbk乱码的问题?

package main

import (
    "bufio"
    "fmt"
    "golang.org/x/net/html/charset"
    "golang.org/x/text/transform"
    "io"
    "io/ioutil"
    "net/http"
)

func DetermineEncoding(r io.Reader) []byte {
    OldReader := bufio.NewReader(r)
    bytes, err := OldReader.Peek(1024)
    if err != nil {
        panic(err)
    }
    e, _, _ := charset.DetermineEncoding(bytes, "")
    reader := transform.NewReader(OldReader, e.NewDecoder())
    all, err := ioutil.ReadAll(reader)
    if err != nil {
        panic(err)
    }
    return all
}

func main() {
    resp, err := http.Get(`http://www.chinanews.com`)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()
    fmt.Printf(`%s`, DetermineEncoding(resp.Body))
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • “互联网+金融”的魅力在于让传统金融不再舒服坐着数钱,不再是“大门一开,肥水自来”,而是跳出固有金融思维,拥抱互联...
    漫一点呀阅读 259评论 1 0
  • 在你的同事当中你可能会羡慕这几种人: 1、情商高,人缘好,做很多事情都有人帮忙的人,男女通杀。 这种人无论男女在职...
    职场真话阅读 2,607评论 0 0
  • 1. form表单有什么作用?有哪些常用的input 标签,分别有什么作用? 表单是一个包含表单元素的区域,允许用...
    VirtualX阅读 532评论 0 2
  • Node.js 可以理解为能在操作系统上跑的js(不仅仅在浏览器) 还能当web服务器哟~ 用的Chrome V8...
    那就远走阅读 356评论 0 0