Maison > développement back-end > Golang > Comment indexer correctement les caractères dans les chaînes UTF-8 de Go ?

Comment indexer correctement les caractères dans les chaînes UTF-8 de Go ?

Patricia Arquette
Libérer: 2024-12-17 18:17:10
original
125 Les gens l'ont consulté

How to Correctly Index Characters in Go's UTF-8 Strings?

Indexation des caractères dans les chaînes Golang : décodage UTF-8

Bien que les littéraux de chaîne de Golang soient des séquences de caractères codées en UTF-8, l'indexation des caractères individuels par leur position, l'utilisation de la syntaxe de type tableau string[index] peut donner des résultats inattendus. En effet, les caractères UTF-8 peuvent occuper plusieurs octets et l'indexation par position d'octet peut rompre le codage UTF-8.

Pour indexer et récupérer des caractères individuels avec précision, Golang propose plusieurs options :

Utiliser les points de code Unicode (Runes)

  • string([]rune("string")[index]): Convertissez la chaîne en une tranche de runes, où chaque rune représente un Point de code Unicode. Cette approche garantit une indexation cohérente des caractères quelle que soit la position de l'octet UTF-8.

Exemple :

package main

import "fmt"

func main() {
    fmt.Println(string([]rune("HELLO, 世界")[1])) // "E"
    fmt.Println(string([]rune("HELLO, 世界")[8])) // "界"
}
Copier après la connexion

Conversion d'octets en caractères

  • string("byte") : Convertir un Caractère ASCII à un octet en chaîne. Notez que cela ne s'applique qu'aux caractères ASCII (les 128 premiers caractères Unicode).

Exemple :

package main

import "fmt"

func main() {
    fmt.Println(string("HELLO"[1])) // "e"
}
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