А есть подобная реализация где-то в опенсорсе? Интересно посмотреть
по сути, вся поддержка utf-8 сводится к функции, которая по первому байту utf-8 последовательности возврашает длину в байтах первого символа. А дальше цикл, который обходит все данные, прыгая по символам.
Функция очень простая, в пятницу, кажется, обсуждали здесь реализацию.