diff options
author | haturatu <taro@eyes4you.org> | 2024-12-15 00:54:08 +0900 |
---|---|---|
committer | haturatu <taro@eyes4you.org> | 2024-12-15 00:54:08 +0900 |
commit | df23b04506e6b4cdfa5c40ce52172728bfe1d063 (patch) | |
tree | d428d461896a2e33e1ec884e671e96b64617b6b6 /main.go | |
parent | 97109aaf2b00830e36cc778c0b76be9c3c36898f (diff) |
add charset
Diffstat (limited to 'main.go')
-rw-r--r-- | main.go | 12 |
1 files changed, 10 insertions, 2 deletions
@@ -7,6 +7,8 @@ import ( "os" "time" + "ght/chardet" + "golang.org/x/net/html" ) @@ -39,7 +41,13 @@ func fetchAndParse(client *http.Client, url string, useRange bool) (string, erro } defer resp.Body.Close() - doc, err := html.Parse(resp.Body) + // encoding and decode + body, err := chardet.DetectAndDecode(resp.Body) + if err != nil { + return "", fmt.Errorf("failed to decode response body: %w", err) + } + + doc, err := html.Parse(body) if err != nil { return "", fmt.Errorf("failed to parse HTML: %w", err) } @@ -64,7 +72,7 @@ func fetchTitle(url string) (string, error) { return title, nil } - // no range limit : get reqest + // no range limit : get request title, err = fetchAndParse(client, url, false) if err != nil { return "", err |