Zeichenindizierung in Golang-Strings: UTF-8-Dekodierung
Obwohl Golangs String-Literale in UTF-8 codierte Zeichenfolgen sind, die einzelne Zeichen indizieren B. anhand ihrer Position mithilfe der Array-ähnlichen Syntax string[index], kann zu unerwarteten Ergebnissen führen. Dies liegt daran, dass UTF-8-Zeichen mehrere Bytes belegen können und die Indizierung nach Byteposition die UTF-8-Kodierung zerstören kann.
Um einzelne Zeichen genau zu indizieren und abzurufen, bietet Golang mehrere Optionen:
Verwendung von Unicode-Codepunkten (Runen)
Beispiel:
package main import "fmt" func main() { fmt.Println(string([]rune("HELLO, 世界")[1])) // "E" fmt.Println(string([]rune("HELLO, 世界")[8])) // "界" }
Konvertieren von Bytes in Zeichen
Beispiel:
package main import "fmt" func main() { fmt.Println(string("HELLO"[1])) // "e" }
Das obige ist der detaillierte Inhalt vonWie indiziert man Zeichen in den UTF-8-Strings von Go richtig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!