Mengendalikan Input XML Bukan UTF-8 dalam Go
Apabila cuba menyahmarshal input XML menggunakan fungsi Unmarshal dalam pakej xml Go, seseorang mungkin menghadapi masalah jika input tidak dikodkan dalam UTF-8. Untuk menangani perkara ini, CharsetReader diperlukan.
Tempat Cari CharsetReader
Nasib baik, pakej net/html Go menyediakan penyelesaian dalam bentuk charset.NewReaderLabel. Pembaca ini boleh mengendalikan penukaran input yang dikodkan bukan UTF-8 kepada UTF-8.
Penyelesaian Kemas Kini untuk 2015 dan Seterusnya
Dalam versi terdahulu Go, a CharsetReader tersuai terpaksa dilaksanakan. Walau bagaimanapun, versi Go yang lebih baharu menyediakan penyelesaian yang lebih mudah menggunakan charset.NewReaderLabel. Berikut ialah coretan kod yang dikemas kini:
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)
Dengan menggunakan charset.NewReaderLabel sebagai CharsetReader, fungsi Unmarshal kini boleh berjaya mengendalikan input XML yang dikodkan bukan UTF-8 tanpa penukaran manual atau pelaksanaan tersuai.
Atas ialah kandungan terperinci Bagaimana untuk Mengendalikan XML Bukan UTF-8 Dikodkan dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!