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 サイトの他の関連記事を参照してください。