ホームページ >バックエンド開発 >Golang >Go で ISO-8859-1 でエンコードされた XML をアンマーシャルするにはどうすればよいですか?

Go で ISO-8859-1 でエンコードされた XML をアンマーシャルするにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-12 19:18:11849ブラウズ

How Can I Unmarshal ISO-8859-1 Encoded XML in Go?

Go を使用した ISO-8859-1 でエンコードされた XML のアンマーシャリング

Go の xml パッケージにある人気のある Unmarshal 関数は、XML 入力の場合には困難になる可能性があります。 UTF-8 でエンコードされていません。このような入力を処理するには、Go には CharsetReader が必要です。

CharsetReader はどこで見つけられますか?

Go の最近のバージョン (2015 年以降) では、golang.org/x /net/html/charset パッケージは必要な機能を提供します。このパッケージ内の NewReaderLabel 関数は、必要な変換を実行できます。

コード例

次のコード スニペットは、NewReaderLabel を使用して、ISO でエンコードされた XML 入力を正しくアンマーシャリングする方法を示しています。 -8859-1:

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

var theXml = [...]byte{byte(0x3C), byte(0x3F), byte(0x78), byte(0x6D), /* ... */}

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

このコードを組み込むことで、Go は正常に動作しますISO-8859-1.

でエンコードされた XML 入力をアンマーシャルします。

以上がGo で ISO-8859-1 でエンコードされた XML をアンマーシャルするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。