Maison >développement back-end >Golang >Comment gérer le XML codé non UTF-8 dans 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!