Второй аргумент 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" />
При неправильной настройке contentType
таким образом, в вашем коде будет принята кодировка кодировки, ошибочно объявленная в HTML.