Golang のデフォルトのエンコーディングは utf-8 ですが、Web ページには一般的な「gb2312」や「gbk」など、さまざまな形式が存在します。これらのエンコードされた Web ページを処理すると大きな文字化けが発生しますが、Golang には独自のエンコードおよびデコード パッケージがないため、サードパーティのパッケージを利用して処理する必要があります。推奨: golang チュートリアル
サードパーティ パッケージ
code.google.com/p/mahonia
使い方の紹介
コードGoogle のサーバーでホストされているようです。国内ユーザーはファイアウォールを回避する必要があるかもしれません。github でマホニアをフォークしました。
まず、必要なエンコード形式がサポートされているかどうかを確認します。サポートされていない場合、戻り値は nil です
func GetCharset(name string) *Charset
if mahonia.GetCharset(char) == nil { return nil, fmt.Errorf("%s charset not suported \n", char)}
特定のエンコード形式のデコーダを作成する
func NewDecoder(name string) Decoder
dec := mahonia.NewDecoder(char)
Then直接デコード: 一般的に使用されます。文字列からの直接デコードと io からのデコードがあります。 stream
func (d Decoder) ConvertString(s string) string
func (d Decoder) NewReader(rd io.Reader) *Reader
ここでは io フローが使用されています。これは、一貫したステートメントを容易にするために、jquery に似たツールキットも以下で使用されているためです。
以上がGolang Web開発でコードが文字化けする原因と解決策の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。