LINUX.ORG.RU

История изменений

Исправление tp_for_my_bunghole, (текущая версия) :

https://github.com/google/rust_icu

Это слишком. И это binding.
Но для Rust это можно считать допустимым подходом, наверно.

В Go range понимает utf8:

const nihongo = "日本語"
    for index, runeValue := range nihongo {
        fmt.Printf("%#U starts at byte position %d\n", runeValue, index)
}

Покажет 3 иероглифа и индекс начального байта для каждого.
Классический цикл как в C покажет только отдельные байты.
Больше возможностей в стандартном пакете unicode/utf8.

Исходная версия tp_for_my_bunghole, :

https://github.com/google/rust_icu

Это слишком. И это binding.

В Go range понимает UTF-8:

const nihongo = "日本語"
    for index, runeValue := range nihongo {
        fmt.Printf("%#U starts at byte position %d\n", runeValue, index)
}

Покажет 3 иероглифа и индекс начального байта для каждого.
Классический цикл как в C покажет только отдельные байты.