Maison >développement back-end >Golang >Comment empêcher les réponses JSON d'afficher des codes ASCII au lieu de caractères ?
Comment afficher des caractères au lieu d'ASCII dans les réponses JSON
Dans cette question de programmation, un utilisateur rencontre un problème où les données JSON contenant un l'esperluette "&" est affichée avec son code ASCII "u0026" au lieu du code réel caractère.
Résolution du problème :
La solution fournie implique l'utilisation d'une fonctionnalité introduite dans Go1.7. En désactivant l'échappement HTML dans l'encodeur JSON, le caractère esperluette peut être conservé tel quel dans les données JSON.
Implémentation à l'aide d'Encoder.DisableHTMLescaping :
Pour désactiver HTML Pour vous échapper, utilisez la méthode Encoder.DisableHTMLEscaping. Cette méthode définit le champ EscapeHTML de l'encodeur sur false, désactivant ainsi l'échappement des caractères HTML.
encoder := json.NewEncoder(responseWriter) encoder.SetEscapeHTML(false)
En modifiant le code avec cette méthode, le serveur HTTP affichera désormais le caractère esperluette sans aucune conversion ASCII. . Voici la version modifiée de la fonction 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.") } }
Maintenant, le navigateur et la console afficheront le caractère esperluette comme prévu, sans aucune conversion ASCII.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!