Maison >développement back-end >Golang >Comment puis-je utiliser le package Runes pour supprimer les accents des chaînes dans Go ?

Comment puis-je utiliser le package Runes pour supprimer les accents des chaînes dans Go ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-03 00:15:03204parcourir

How Can I Use the Runes Package to Remove Accents From Strings in Go?

Pack de runes dans Go : transformation des caractères accentués

Dans Go, une tâche courante consiste à transformer les caractères accentués en leurs équivalents non accentués. Une approche consiste à utiliser des packages Unicode tels que norm et text. Cependant, ces packages peuvent être complexes pour les débutants.

Une solution plus simple consiste à utiliser le package runes, qui a été introduit dans Go 1.5 (sorti en août 2015) et Go 1.6 (sortie prévue au premier trimestre 2016). Le package runes fournit un moyen plus simple de supprimer les marques sans espacement (Mn), qui sont généralement responsables des accents.

Voici un exemple d'utilisation du package runes pour supprimer les accents d'une chaîne :

<code class="go">import (
    "fmt"
    "runes"
    "bytes"
    "code.google.com/p/go.text/transform"
    "code.google.com/p/go.text/unicode/norm"
)

func main() {
    r := bytes.NewBufferString("Your Śtring")
    t := transform.Chain(norm.NFD, runes.Remove(runes.In(unicode.Mn)), norm.NFC)
    r = transform.NewReader(r, t)
    fmt.Println(r)

    // Output:
    // Your String
}</code>

Ce code utilise la fonction transform.Chain pour appliquer une série de transformations à la chaîne. Tout d’abord, la chaîne est décomposée sous sa forme de normalisation Unicode (NFD) pour séparer les caractères de base des accents. Ensuite, la fonction runes.Remove est appliquée pour filtrer toutes les runes qui entrent dans la catégorie Mn (marques sans espacement). Enfin, la chaîne est composée à nouveau dans sa forme normalisée (NFC) pour supprimer tous les signes diacritiques restants.

En conséquence, la chaîne accentuée « Votre chaîne » est transformée en « Votre chaîne » après la suppression des caractères non -marques d'espacement.

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