Golang で URL から charset を取得するのを書いたのですが、他にもっとよい方法があるとおもうのです...

他によい方法がある気がするのですが...わからないので、書いてみました。

URL から、その charset を取得する。

main.go
package main

import (
    "fmt"
    "net/http"
    "regexp"
    "github.com/PuerkitoBio/goquery"
)


func getCharset(url string) (charset string) {
    res, err := http.Get(url)
    if err != nil {
        // handle error
    }
    defer res.Body.Close()

    doc, _ := goquery.NewDocument(url)
    doc.Find("meta").Each(func(_ int, s *goquery.Selection) {

        // <meta charset="utf-8"> の場合
        charsetAttr, _ := s.Attr("charset")
        if charsetAttr != "" {
            charset = charsetAttr
        }

        // <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> の場合
        httpEquiv, _ := s.Attr("http-equiv")
        if httpEquiv == "Content-Type" {
            content, _ := s.Attr("content")
            rep := regexp.MustCompile(`.*charset=(.+)`)
            charsetStr := rep.ReplaceAllString(content, "$1")
            if charsetStr != "" {
                charset = charsetStr
            }
        }
    })
    return charset
}

func main() {
    url := "https://qiita.com/trend"
    a := getCharset(url)
    fmt.Printf("%v", a)
}
$ go run main.go
UTF-8%