我非常简单的代码段:
import "net/http"
import "io"
import "os"
func main() {
resp, err := http.Get("http://example.com")
if err == nil {
io.Copy(os.Stdout, resp.Body)
}
}
当example.com
编码charset=iso-8859-1
时,我的输出有问题。例如,元音不正确显示:
Hällo Wörld --> H?llo W?rld
什么是正确显示变音符号的好方法?
答案 0 :(得分:2)
您可以使用包golang.org/x/net/html/charset来确定网站的编码,还可以创建一个将内容转换为UTF-8的阅读器。
以下是一个工作示例:
package main
import (
"io"
"net/http"
"os"
"golang.org/x/net/html/charset"
)
func main() {
resp, err := http.Get("http://example.com")
if err != nil {
os.Exit(1)
}
r, err := charset.NewReader(resp.Body, resp.Header.Get("Content-Type"))
if err != nil {
os.Exit(1)
}
io.Copy(os.Stdout, r)
}