Как читать unicode строки?

Junior
591 просмотров
AFK Offer AI

Строка в Go — последовательность байт, не символов. Для работы с Unicode используй rune (int32), который представляет один code point.

s := "Привет"

// Побайтово — неправильно для unicode fmt.Println(len(s)) // 12 (кириллица = 2 байта/символ)

// Посимвольно — правильно for _, r := range s { fmt.Printf("%c", r) // range итерирует по рунам }

// Или через конвертацию runes := []rune(s) fmt.Println(len(runes)) // 6 символов

Пакеты unicode/utf8 и strings содержат утилиты для работы с UTF-8. utf8.RuneCountInString(s) возвращает количество символов.

Следующий вопрос

Что такое GOGC и как его тюнить?