Golang で文字化けしたクローラー コードを記述する方法

angryTom
リリース: 2020-02-15 09:52:40
オリジナル
3441 人が閲覧しました

Golang で文字化けしたクローラー コードを記述する方法

クローラーが文字化けしたコードを golang で作成する場合の対処方法

クローラー プログラムを golang で作成すると、エンコード形式のページが表示されます。 gb2312。

Web ページから、ページの文字エンコーディングが gb2312

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
ログイン後にコピー

であり、golang はデフォルトで UTF-8 エンコーディング形式をサポートしていることがわかります。直接登ると文字化けしてしまいます。

解決策:

github.com/axgle/mahonia を使用します。このパッケージはエンコード変換

1 を完了し、go を実行できます。 get github.com/axgle/mahonia コマンドを使用してこのパッケージをダウンロードすると、

github.com\axgle\mahonia
ログイン後にコピー
2 が

%gopath%/src

ディレクトリに生成されます。コードを使用するには

1) パッケージをインポートします

import "github.com/axgle/mahonia"
ログイン後にコピー

2) 変換関数

func ConvertToString(src string, srcCode string, tagCode string) string {
    srcCoder := mahonia.NewDecoder(srcCode)
    srcResult := srcCoder.ConvertString(src)
    tagCoder := mahonia.NewDecoder(tagCode)
    _, cdata, _ := tagCoder.Translate([]byte(srcResult), true)
    result := string(cdata)
    return result
}
ログイン後にコピー

3) 文字列変換エンコードが必要な場合にこの関数を呼び出します

result = ConvertToString(html, "gbk", "utf-8")
ログイン後にコピー

golang についてさらに詳しく知りたい場合は、PHP 中国語 Web サイトの golang チュートリアル 列に従ってください。

以上がGolang で文字化けしたクローラー コードを記述する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート