プログラミング言語 Golang は、迅速な開発と優れたパフォーマンスを備えたプログラミング言語であり、近年 Google によって開発された効率的かつ強力なプログラミング言語でもあり、単純な構文、高速なコンパイル、高い実行効率などの特徴を持ち、ネットワークアプリケーションのプログラミングや開発も非常に便利です。 Golang では、HTTP 開発が非常に一般的です。HTTP リクエストは Unicode 文字列も処理できます。しかし、中国語の文字列を処理するときに文字化けが発生するという問題がよく発生します。この記事は、この問題を解決するために書かれています。
ネットワーク通信とサーバーサイド開発には、Golang の http パッケージを使用します。 http パッケージを使用すると、http リクエストおよびレスポンス機能を簡単に実装できますが、同時に Golang の htt パッケージでは http リクエストおよびレスポンスのエンコード方式の設定もサポートされており、中国語エンコードの問題を解決できます。
HTTP リクエストのエンコード方式を設定する
HTTP リクエストでは、リクエストの主要部分は、「Content-Type」ヘッダー フィールドで指定されたメディア タイプで表されるデータです。例: application/json、application/xml など。同時に、「Content-Type」ヘッダーフィールドの「charset」パラメータを設定することで、リクエストのエンコード方式を指定できます。
具体的な実装は次のとおりです:
package main import ( "io/ioutil" "net/http" "bytes" ) func main() { url := "http://www.example.com/api" params := []byte(`{"username":"user","password":"pass"}`) req, err := http.NewRequest("POST", url, bytes.NewBuffer(params)) if err != nil { // handle error } req.Header.Set("Content-Type", "application/json; charset=utf-8") client := &http.Client{} resp, err := client.Do(req) if err != nil { // handle error } defer resp.Body.Close() body, err := ioutil.ReadAll(resp.Body) if err != nil { // handle error } // handle response }
上記のコードでは、リクエスト パラメーターは JSON としてフォーマットされ、「Content-Type」ヘッダー フィールドの「charset」は「」に設定されます。 utf-8」。
HTTP 応答のエンコード方式の設定
HTTP 応答のエンコード方式については、「Content-Type」ヘッダー フィールドの「charset」パラメータを設定して、次のようにエンコード方式を指定することもできます。
package main import ( "net/http" ) func main() { content := "你好,世界" w := http.ResponseWriter w.Header().Set("Content-Type", "text/html;charset=utf-8") w.Write([]byte(content)) }
上記のコードでは、「http.ResponseWriter」を使用して http 応答を生成します。 「Content-Type」ヘッダフィールドの「charset」を「utf-8」に設定し、UTF-8エンコード形式で文字列を出力します。
概要
Golang の HTTP 開発では、「Content-Type」ヘッダー フィールドに「charset」パラメータを設定するだけで、中国語エンコーディングの問題を簡単に解決できます。中国語の文字化けの問題が発生しないように、HTTP リクエストとレスポンスのエンコード方法は一貫している必要があります。
以上がgolang http エンコーディングを設定するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。