Heim >Backend-Entwicklung >Golang >Wie kann verhindert werden, dass JSON-Antworten ASCII-Codes anstelle von Zeichen anzeigen?
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!