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,595評論 0 0
  • 1. form表單有什么作用?有哪些常用的input 標簽,分別有什么作用? 表單是一個包含表單元素的區域,允許用...
    VirtualX閱讀 532評論 0 2
  • Node.js 可以理解為能在操作系統上跑的js(不僅僅在瀏覽器) 還能當web服務器喲~ 用的Chrome V8...
    那就遠走閱讀 356評論 0 0