Maison  >  Article  >  développement back-end  >  Comment normaliser la saisie de texte non-ASCII en ASCII à l'aide de la bibliothèque Go Standard ?

Comment normaliser la saisie de texte non-ASCII en ASCII à l'aide de la bibliothèque Go Standard ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-24 07:22:02611parcourir

How to Normalize Non-ASCII Text Input to ASCII Using the Go Standard Library?

Normalisation de la saisie de texte en ASCII

De nombreuses applications nécessitent la possibilité d'analyser les saisies de l'utilisateur et d'identifier les erreurs d'écriture. Cependant, la gestion des caractères non-ASCII, tels que les guillemets bouclés, peut être un défi.

Remplacement de chaîne avec stdlib

Une approche courante consiste à utiliser des remplacements de chaîne avec des fonctions comme des octets.Remplacer. Bien qu'efficace pour des caractères connus spécifiques, cette méthode peut s'avérer fastidieuse pour gérer divers caractères.

Utilisation de la fonction Strings.Map

La bibliothèque standard Go offre une solution plus polyvalente avec la fonction strings.Map. Cette fonction permet le mappage de runes (points de code Unicode) avec d'autres runes. En définissant une fonction de mappage personnalisée, vous pouvez convertir les caractères non-ASCII en leurs équivalents ASCII.

Exemple

<code class="go">import (
    "fmt"
    "strings"
)

func normalize(in rune) rune {
    switch in {
    case '“', '‹', '”', '›':
        return '"'
    case '‘', '’':
        return '\''
    }
    return in
}

func main() {
    data := "Hello “Frank” or ‹François› as you like to be ‘called’"
    fmt.Printf("Original: %s\n", data)
    cleanedData := strings.Map(normalize, data)
    fmt.Printf("Cleaned: %s\n", cleanedData)
}</code>

Sortie :

Original: Hello “Frank” or ‹François› as you like to be ‘called’
Cleaned: Hello "Frank" or "François" as you like to be 'called'

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