ホームページ > バックエンド開発 > Golang > JSON 応答で文字の代わりに ASCII コードが表示されないようにするにはどうすればよいですか?

JSON 応答で文字の代わりに ASCII コードが表示されないようにするにはどうすればよいですか?

Patricia Arquette
リリース: 2024-11-28 15:22:10
オリジナル
392 人が閲覧しました

How to Prevent JSON Responses from Displaying ASCII Codes Instead of Characters?

JSON 応答で ASCII の代わりに文字を表示する方法

このプログラミングの質問では、ユーザーは JSON データに次のような問題が発生しています。アンパサンド「&」が実際のASCIIコードではなく「u0026」で表示されます。

問題の解決:

提供される解決策には、Go1.7 で導入された機能の利用が含まれます。 JSON エンコーダで HTML エスケープを無効にすると、アンパサンド文字を JSON データ内でそのまま保持できます。

Encoder.DisableHTMLEscaping を使用した実装:

HTML を無効にするにはエスケープするには、Encoder.DisableHTMLEscaping メソッドを使用します。このメソッドはエンコーダの EscapeHTML フィールドを false に設定し、HTML 文字のエスケープを効果的に無効にします。

encoder := json.NewEncoder(responseWriter)
encoder.SetEscapeHTML(false)
ログイン後にコピー

このメソッドでコードを変更すると、HTTP サーバーは ASCII 変換を行わずにアンパサンド文字を表示するようになります。 。 testFunc 関数の修正版は次のとおりです。

func testFunc(w http.ResponseWriter, r *http.Request) {
    data := make(map[string]string)
    data["key"] = "&"

    encoder := json.NewEncoder(w)
    encoder.SetEscapeHTML(false)

    if err := encoder.Encode(data); err != nil {
        fmt.Fprintln(w, "Failed to generate JSON.")
    }
}
ログイン後にコピー

これで、ブラウザとコンソールの両方で、ASCII 変換を行わずに、意図したとおりにアンパサンド文字が表示されます。

以上がJSON 応答で文字の代わりに ASCII コードが表示されないようにするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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