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)
Exemple :
package main import "fmt" func main() { fmt.Println(string([]rune("HELLO, 世界")[1])) // "E" fmt.Println(string([]rune("HELLO, 世界")[8])) // "界" }
Conversion d'octets en caractères
Exemple :
package main import "fmt" func main() { fmt.Println(string("HELLO"[1])) // "e" }
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!