Heim >Backend-Entwicklung >Golang >Wie kann verhindert werden, dass JSON-Antworten ASCII-Codes anstelle von Zeichen anzeigen?

Wie kann verhindert werden, dass JSON-Antworten ASCII-Codes anstelle von Zeichen anzeigen?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-28 15:22:10394Durchsuche

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

So zeigen Sie Zeichen anstelle von ASCII in JSON-Antworten an

Bei dieser Programmierfrage hat ein Benutzer ein Problem, bei dem JSON-Daten eine enthalten Das kaufmännische Und-Zeichen „&“ wird mit seinem ASCII-Code „u0026“ anstelle des tatsächlichen angezeigt Zeichen.

Lösung des Problems:

Die bereitgestellte Lösung beinhaltet die Nutzung einer in Go1.7 eingeführten Funktion. Durch Deaktivieren der HTML-Escape-Funktion im JSON-Encoder kann das kaufmännische Und-Zeichen so beibehalten werden, wie es in den JSON-Daten ist.

Implementierung mit Encoder.DisableHTMLEscaping:

So deaktivieren Sie HTML Um zu entkommen, verwenden Sie die Methode Encoder.DisableHTMLEscaping. Diese Methode setzt das EscapeHTML-Feld des Encoders auf „false“, wodurch das Escape-Zeichen von HTML-Zeichen effektiv deaktiviert wird.

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

Durch die Änderung des Codes mit dieser Methode zeigt der HTTP-Server nun das kaufmännische Und-Zeichen ohne ASCII-Konvertierung an . Hier ist die modifizierte Version der testFunc-Funktion:

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.")
    }
}

Jetzt zeigen sowohl der Browser als auch die Konsole das kaufmännische Und-Zeichen wie vorgesehen an, ohne ASCII-Konvertierung.

Das obige ist der detaillierte Inhalt vonWie kann verhindert werden, dass JSON-Antworten ASCII-Codes anstelle von Zeichen anzeigen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn