Вы должны прочитать и изучить страницу Википедии на UTF-8, кодировка ясно описана thereL https://en.wikipedia.org/wiki/UTF-8
декодировать UTF-8, прочитать первые байты, и что должно сказать вам, сколько последующие байты образуют персонаж. Затем прочитайте в том, что многие другие байты объединяют бит данных, и у вас будет номер кода.
Если вы делаете это до тех пор, пока не достигнете конца строки, это позволит вам рассчитать, сколько кодовых точек в строке.
Если вы сделаете это, пока не достигнете определенного индекса кодового слова, вы узнаете смещение байта для этого индекса кодовой точки.
Я не думаю, что есть какие-либо функции STL, которые помогают в этом, кроме вашего базового std::string::const_iterator
.
Что касается нестандартных библиотек, я рекомендую использовать библиотеку unicode, например ICU, или вместо того, чтобы писать код самостоятельно. Библиотеки .Net вроде бы работают, если вы осторожны, но я не думаю, что Windows имеет другие API-интерфейсы, которые могут помочь в этом.
http://site.icu-project.org/ –
Stack Overflow предназначен для ответа на конкретные вопросы о проблемах, с которыми вы действительно сталкиваетесь с кодом code_, не делая для вас кода –
см. Инструкции utf8everywhere.org –