gpt4 book ai didi

golang HTML字符集解码

转载 作者:IT王子 更新时间:2023-10-29 01:42:14 25 4
gpt4 key购买 nike

我正在尝试解码 不是 utf-8 编码的 HTML 页面。

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

有没有图书馆可以做到这一点?我在网上找不到。

P.S 当然,我可以使用 goquery 和 iconv-go 提取字符集并解码 HTML 页面,但我不想重新发明轮子。

最佳答案

Golang官方提供扩展包:charsetencoding .

下面的代码确保文档可以被 HTML 包正确解析:

func detectContentCharset(body io.Reader) string {
r := bufio.NewReader(body)
if data, err := r.Peek(1024); err == nil {
if _, name, ok := charset.DetermineEncoding(data, ""); ok {
return name
}
}
return "utf-8"
}

// Decode parses the HTML body on the specified encoding and
// returns the HTML Document.
func Decode(body io.Reader, charset string) (interface{}, error) {
if charset == "" {
charset = detectContentCharset(body)
}
e, err := htmlindex.Get(charset)
if err != nil {
return nil, err
}

if name, _ := htmlindex.Name(e); name != "utf-8" {
body = e.NewDecoder().Reader(body)
}

node, err := html.Parse(body)
if err != nil {
return nil, err
}
return node, nil
}

关于golang HTML字符集解码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36563805/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com