Maison >développement back-end >Golang >Comment empêcher les réponses JSON d'afficher des codes ASCII au lieu de caractères ?

Comment empêcher les réponses JSON d'afficher des codes ASCII au lieu de caractères ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-28 15:22:10375parcourir

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

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn