Ручка UTF-8 строка
Насколько я знаю, Linux использует кодировку UTF-8. Это значит, что я могу использоватьstd::string
для обработки строки правильно? Просто кодировка будет UTF-8.
Теперь в UTF-8 мы знаем, что некоторые символы составляют 1 байт, а некоторые 2,3 .. байта. Мой вопрос: как вы справляетесь со строкой в кодировке UTF-8 в Linux, используя C ++?
В частности: как бы вы получили длину строки, скажем, в байтах (или количество символов)? Как бы вы пересекали строку? и т.п.
Причина, по которой я спрашиваю, состоит в том, что, как я уже сказал, в символах UTF-8 может быть больше одного байта, верно? Так очевидноmyString[7]
а такжеmyString[8]
- может не относиться к двум разным персонажам. Кроме того, тот факт, что строка UTF-8 занимает десять байтов, мало говорит о количестве символов, верно?