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

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

Patricia Arquette
Libérer: 2024-12-16 21:02:11
original
594 Les gens l'ont consulté

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

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

Lorsque vous essayez de rassembler une liste de chaînes à l'aide de json.Marshal, il est possible de rencontrez une erreur indiquant la présence de caractères UTF-8 non valides. Cet article aborde ce problème et propose des solutions pour supprimer ou remplacer ces caractères dans Go.

En Python, le module Unicode propose des méthodes telles que unicode.replace et unicode.strict pour gérer les caractères non valides. Cependant, Go n'a pas d'équivalents directs. Au lieu de cela, il repose sur une approche différente :

Utilisation de strings.ToValidUTF8 dans Go 1.13

Pour supprimer les caractères UTF-8 non valides d'une chaîne, vous pouvez utiliser les chaînes Fonction .ToValidUTF8 introduite dans Go 1.13. Il prend deux paramètres : la chaîne d'entrée et un caractère de remplacement à utiliser pour les octets invalides. Si le caractère de remplacement est une chaîne vide, les octets invalides seront supprimés silencieusement :

invalidString := "a\xc5z"
validString := strings.ToValidUTF8(invalidString, "")
// validString will now be "az"
Copier après la connexion

Utilisation de strings.Map et utf8.RuneError dans Go 1.11

Une alternative La solution consiste à utiliser strings.Map avec utf8.RuneError. strings.Map applique une fonction à chaque rune dans une chaîne, tandis que utf8.RuneError représente un caractère UTF-8 non valide. Voici un exemple :

invalidString := "a\xc5z"

fixUtf := func(r rune) rune {
    if r == utf8.RuneError {
        return -1 // Replace invalid characters with -1
    }
    return r
}

validString := strings.Map(fixUtf, invalidString)
fmt.Println(validString) // Output: "az"
Copier après la connexion

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal