Какой самый простой способ преобразовать кодовую точку Unicode в последовательность байтов UTF-8 в C? Единственный способ, который приходит на ум, - это использовать iconv для отображения из кодовой страницы UTF-32LE в UTF-8, но это похоже на излишество.
iconv
Преобразование Unicode - не простая задача. Использование iconv не кажется мне излишним. Возможно, существует библиотечная версия iconv, которую вы можете использовать, чтобы избежать вызова system (), если вы этого хотите.
Могу ли я предложить ICU ? Это достаточно «стандартный» способ решения проблем i18n.
Я сам не использовал версию C, но подозреваю, что ucnv_fromUnicode может быть функцией, которую вы ищете.
UTF8 работает путем кодирования длины кодированной кодовой точки в старшие биты кодированных байтов. см http://en.wikipedia.org/wiki/UTF-8#Description
Я нашел эту маленькую функцию в C здесь http://www.deanlee.cn/programming/convert-unicode-to-utf8/, но не проверял ее.