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!