Avatar ·

Wie erhalte ich die Anzahl der Zeichen (Runes) in einem Go-String, nicht die Bytes?

```html Hallo zusammen! Ich habe gerade angefangen, Go zu lernen, und bin auf ein Problem beim Zählen von Zeichen in einem String gestoßen. Ich schreibe einen kleinen Passwort-Validator: Ich muss überprüfen, ob die Passwortlänge mindestens 8 Zeichen beträgt. Ich habe diesen Code geschrieben: ```go package main import "fmt" func main() { password := "пароль" if len(password) < 8 { fmt.Println("Passwort ist zu kurz") } } ``` Aber das Programm gibt "Passwort ist zu kurz" aus, obwohl der String "пароль" aus 6 russischen Buchstaben besteht, nicht 8. Ich hatte erwartet, dass len() 6 zurückgibt, aber es gibt 12 zurück (wenn ich es richtig verstanden habe). Es scheint, dass len() Bytes zählt, nicht Zeichen. Wie zählt man die Anzahl der Zeichen in einem Go-String korrekt? Muss man Unicode irgendwie berücksichtigen, wenn der String Kyrillisch oder Emojis enthält? Ich wäre für Codebeispiele dankbar. Tags: strings, runes ```