Как перебрать кластеры графем Unicode в Rust?
Я изучаю язык Rust и был удивлён тем, что Rust различает только байтовые последовательности UTF-8, но не фактические графемные кластеры (то есть диакритические знаки считаются отдельными символами).
Например, Rust может преобразовать входной текст в вектор следующим образом (с помощью “नमस्ते”.chars()
):
['न', 'म', 'स', '्', 'त', 'े'] // 4 и 6 - это диакритические знаки, и они не должны быть отдельными элементами
Как же мне получить вектор вида:
["न", "म", "स्", "ते"]
Подскажите, пожалуйста, как это можно реализовать!
UnicodeEncodeError: 'ascii' кодек не может закодировать символ u'\xa0' на позиции 20: номер не в диапазоне (128)
UTF-8 на всех уровнях!
`std::wstring` против `std::string`: когда использовать и в чем разница?
Почему println! не работает в юнит-тестах Rust?
Можно ли пометить функцию как устаревшую?