ホームページ >バックエンド開発 >Golang >Golang Web開発でコードが文字化けする原因と解決策

Golang Web開発でコードが文字化けする原因と解決策

尚
オリジナル
2019-12-12 09:44:483431ブラウズ

Golang Web開発でコードが文字化けする原因と解決策

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 サイトの他の関連記事を参照してください。

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