ホームページ > バックエンド開発 > Golang > golang http エンコーディングを設定する

golang http エンコーディングを設定する

王林
リリース: 2023-05-13 09:22:06
オリジナル
1056 人が閲覧しました

プログラミング言語 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 サイトの他の関連記事を参照してください。

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