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
DDDoriginal
2024-12-07 19:40:17548parcourir

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", "")

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"))

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!

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