Я пытаюсь разобрать XML-фид, содержащий немецкие символы (например, ß, ä, Ö, ü и т. Д.), В структуру, что приводит к ошибке: xml: encoding "utf-16" declared but Decoder.CharsetReader is nil unmarshal successful
По сути, это то, чтоЯ делаю (опущена проверка ошибок для частей, которые работают):
resp, _ := http.Get(url)
defer resp.Body.Close()
bodyBytes, _ := ioutil.ReadAll(resp.Body)
err = xml.Unmarshal(bodyBytes, &target)
if err != nil {
fmt.Println(err)
}
Я пытался преобразовать XML в JSON, используя github.com/basgys/goxml2json
, я пытался преобразовать в строку и обратно в [] перед байтом unmarshal, я пытался использовать различные декодеры, размещенные в других SO-ответах (поскольку в нем говорится, что читатель charset равен nil), например:
reader := bytes.NewReader(bodyBytes)
decoder := xml.NewDecoder(reader)
decoder.CharsetReader = charset.NewReader
err = decoder.Decode(&target)
if err != nil {
fmt.Println(err)
}
Независимо от того, что я пробовал, он не сможетunmarshal / decode xml feed в структуру .. в некоторых случаях происходит преобразование всего текста на китайский, а не на немецкий.