在ISO-8859-1编码的网站上的变音符号

时间:2016-08-31 05:42:39

标签: http go encoding

我非常简单的代码段:

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

什么是正确显示变音符号的好方法?

1 个答案:

答案 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)
}