Skip to content

unicode

В разработке на Go операция извлечения подстрок выполняется очень часто, особенно при смешанной обработке китайского и английского текста, где следует уделять особое внимание вопросам кодировки. В этой статье систематически рассматриваются четыре основных способа извлечения подстрок в Go с примерами кода и техническими деталями.

Решение для безопасной обработки Unicode

Безопасное извлечение на уровне символов через преобразование в []rune:

go
func main() {
    str := "Hello, 世界!"
    runes := []rune(str)
    
    // Безопасное извлечение на уровне символов
    sub3 := string(runes[7:9])
    fmt.Println("Безопасное извлечение китайских символов:", sub3) // Вывод: 世界
}

Сравнение технологий:

РешениеВременная сложностьРасход памятиСценарии использования
Байтовый срезO(1)НизкийСтроки только с ASCII символами
Преобразование []runeO(n)ВысокийСтроки с многобайтовыми символами

Golang by www.golangdev.cn edit