Maison >développement back-end >Golang >Comment gérer le XML codé non UTF-8 dans Go ?

Comment gérer le XML codé non UTF-8 dans Go ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-26 03:28:151008parcourir

How to Handle Non-UTF-8 Encoded XML in Go?

Gestion des entrées XML non UTF-8 dans Go

Lorsque vous tentez de désorganiser une entrée XML à l'aide de la fonction Unmarshal dans le package XML de Go, on peut rencontrer des problèmes si l'entrée n'est pas codée en UTF-8. Pour résoudre ce problème, un CharsetReader est requis.

Où trouver un CharsetReader

Heureusement, le package net/html de Go fournit une solution sous la forme de charset.NewReaderLabel. Ce lecteur peut gérer la conversion d'entrées codées non UTF-8 en UTF-8.

Solution mise à jour pour 2015 et au-delà

Dans les versions antérieures de Go, un Un CharsetReader personnalisé a dû être implémenté. Cependant, les versions plus récentes de Go proposent une solution plus simple utilisant charset.NewReaderLabel. Voici un extrait de code mis à jour :

import (
    "encoding/xml"
    "bytes"
    "golang.org/x/net/html/charset"
)

// ...
reader := bytes.NewReader(theXml)
decoder := xml.NewDecoder(reader)
decoder.CharsetReader = charset.NewReaderLabel
err = decoder.Decode(&parsed)

En utilisant charset.NewReaderLabel comme CharsetReader, la fonction Unmarshal peut désormais gérer avec succès les entrées XML non codées en UTF-8 sans conversion manuelle ni implémentations personnalisées.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn