go で Socket を書いていると、クライアントから中国語を入力するとサーバーが文字化けを正常に表示できないことが分かりました。
中国語をトランスコードすることで解決できます。
トランスコーディングは、go の公式 golang.org/x/text パッケージを使用して実装できます。
インストールコマンドは次のとおりです:
go get golang.org/x/text
エンコード形式を変換する関数は次のとおりです:
func GbToUtf8(s []byte) ([]byte, error) { //reader := transform.NewReader(byte.NewReader(s), simplifiedchinese.GBK.NewEncoder()) reader := transform.NewReader(bytes.NewReader(s),simplifiedchinese.GBK.NewDecoder()) d, e := ioutil.ReadAll(reader) if e != nil { return nil, e } return d, nil }
エンコード形式を変換する関数を使用します:
v, err := GbToUtf8(buf[0:n])
golang の詳細については、PHP 中国語 Web サイトの golang チュートリアル 列に注目してください。
以上がGolang はソケット中国語の文字化け解決策を使用しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。