NewReader的第二个参数记录为contentType
而不是字符编码。这意味着它需要Content- Type
HTTP标头中的字段值。因此,正确的用法是:
reader, err := charset.NewReader(resp.Body, "text/html; charset=iso-8859-1")
这完美地工作。
注意,如果给定的contentType
内部没有有用的字符集定义,它将查看主体本身以确定字符集。并且尽管此页的HTTP标头有一个清晰的
Content-Type: text/html;charset=iso-8859-1
返回的实际HTML文档定义了不同的字符集编码:
<Meta http-equiv="Content-Type" content="text/html; charset=utf-8" />