Maison >développement back-end >Golang >Comment puis-je rendre les données JSON brutes avec échappement Unicode lisibles dans Go ?

Comment puis-je rendre les données JSON brutes avec échappement Unicode lisibles dans Go ?

DDD
DDDoriginal
2024-12-05 19:28:11678parcourir

How Can I Make Raw Unicode-Escaped JSON Data Readable in Go?

Comment rendre lisible le contenu brut codé Unicode ?

Lorsque vous demandez des données JSON à une API Web, vous pouvez rencontrer du contenu ASCII brut qui apparaît alors qu'Unicode s'échappe. Lors de l'utilisation de bufio.ScanRunes pour analyser la réponse échoue, le décodage de la réponse à l'aide d'outils tels que le package json ou strconv.Unquote peut convertir efficacement les échappements Unicode en texte lisible.

Explication détaillée :

Les données JSON fournies dans la question contiennent des caractères Unicode représentés à l'aide d'échappements de barre oblique inverse, tels que u5408 et u672a. Pour décoder ces échappements et révéler les caractères Unicode réels, nous pouvons utiliser les méthodes suivantes :

  • Package JSON (json) : JSON prend en charge le décodage automatique des échappements Unicode lors du démarshalage des données JSON. . Voici un exemple :
package main

import (
    "encoding/json"
)

func main() {
    var i interface{}
    err := json.Unmarshal([]byte(`{"name": "\u5408\u80a5"}`), &i)
    fmt.Println(err, i)
}

Sortie (essayez-le sur Go Playground) :

<nil> map[name:同学]
  • strconv.Unquote : Pour ne plus citer des fragments plus petits de texte codé Unicode, strconv.Unquote peuvent être utilisés. Il attend une chaîne entre guillemets, comme indiqué ci-dessous :
fmt.Println(strconv.Unquote(`"\u7d20\u672a\u8c0b"`))

Sortie (essayez-la sur Go Playground) :

素未谋

N'oubliez pas que strconv.Unquote nécessite le chaîne à mettre entre guillemets, obtenue en utilisant un littéral de chaîne brute ( ` ) pour empêcher le compilateur de retirer les guillemets lui-même.

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