Maison > développement back-end > Golang > Comment supprimer efficacement les caractères UTF-8 invalides des chaînes JSON dans Go ?

Comment supprimer efficacement les caractères UTF-8 invalides des chaînes JSON dans Go ?

DDD
Libérer: 2024-12-07 19:40:17
original
521 Les gens l'ont consulté

How to Effectively Remove Invalid UTF-8 Characters from JSON Strings in Go?

Suppression des caractères UTF-8 non valides des chaînes JSON dans Go

Lorsque vous rencontrez des caractères UTF-8 non valides dans des chaînes lors du marshaling JSON, un problème courant problème dans Go, il est crucial de trouver un moyen efficace de les supprimer ou de les gérer.

Dans Go, divers packages et Des techniques peuvent être utilisées pour résoudre ce problème. Une option simple introduite dans Go 1.13 est :

strings.ToValidUTF8("a\xc5z", "")
Copier après la connexion

Cette fonction remplace les séquences UTF-8 non valides par la chaîne de remplacement spécifiée comme deuxième paramètre.

Alternativement, Go 1.11 et versions ultérieures fournissent un approche polyvalente utilisant la fonction Map et la constante utf8.RuneError :

fixUtf := func(r rune) rune {
    if r == utf8.RuneError {
        return -1
    }
    return r
}

fmt.Println(strings.Map(fixUtf, "a\xc5z"))
Copier après la connexion

Le La fonction strings.Map applique la fonction spécifiée à chaque rune de la chaîne, renvoyant une nouvelle chaîne. La fonction fixUtf vérifie les caractères non valides et les remplace par -1, les supprimant ainsi de la sortie.

Grâce à ces méthodes, les développeurs peuvent gérer rapidement et de manière fiable les caractères UTF-8 non valides dans les chaînes JSON, garantissant ainsi un UTF-8 valide. 8 données lors du marshaling.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal