Посмотрел CpcUtf8Conv. Действительно, обработки ошибок нет вообще, контроля диапазонов нет, выброса нелегальных символов нет, контроля чрезмерно длинных кодировок нет. Кроме того, поддерживается кодирование и декодирование только до 3-байтовых последовательностей UTF-8 (легальными являются и 4-байтовые последовательности, а ещё есть 5- и 6-байтовые, их тоже надо корректно обрабатывать). Чтение производится в один-единственный CHAR, т.е. сформировать surrogate pair UCS-2/UTF-16 не получится.

Есть такой замечательныйстресс-тестдля декодеров UTF-8, упоминается вUTF-8 and Unicode FAQ. Много интересного можно разглядеть.

Погодите, у нас же где-то народ XML делал, в том числе для Jabber. Там-то должен быть нормальный, безопасный (хотя бы декодер) UTF-8?