Go 检测网页的编码类型

17 min read

要检测一个网页的编码类型,可以使用以下的代码:

// 引入第三方库
import (
    "golang.org/x/net/html/charset"
    "net/http"
    "io/ioutil"
)

// 定义一个函数,接收一个网页的 url,返回编码类型
func detectEncoding(url string) (string, error) {
    // 通过 http.Get 方法获取网页的响应
    resp, err := http.Get(url)
    // 如果有错误,返回错误
    if err != nil {
        return "", err
    }
    // 延迟关闭响应的 Body
    defer resp.Body.Close()
    // 读取响应的 Body
    data, err := ioutil.ReadAll(resp.Body)
    // 如果有错误,返回错误
    if err != nil {
        return "", err
    }
    // 通过 charset.DetermineEncoding 方法判断编码类型
    e, _, _ := charset.DetermineEncoding(data, "")
    // 返回编码类型的名称
    return e.Name(), nil
}