Самый простой способ конвертировать кодовую точку Unicode в UTF-8 - PullRequest
7 голосов
/ 27 октября 2008

Какой самый простой способ преобразовать кодовую точку Unicode в последовательность байтов UTF-8 в C? Единственный способ, который приходит на ум, - это использовать iconv для отображения из кодовой страницы UTF-32LE в UTF-8, но это похоже на излишество.

Ответы [ 3 ]

7 голосов
/ 27 октября 2008

Преобразование Unicode - не простая задача. Использование iconv не кажется мне излишним. Возможно, существует библиотечная версия iconv, которую вы можете использовать, чтобы избежать вызова system (), если вы этого хотите.

5 голосов
/ 27 октября 2008

Могу ли я предложить ICU ? Это достаточно «стандартный» способ решения проблем i18n.

Я сам не использовал версию C, но подозреваю, что ucnv_fromUnicode может быть функцией, которую вы ищете.

3 голосов
/ 27 октября 2008

UTF8 работает путем кодирования длины кодированной кодовой точки в старшие биты кодированных байтов. см http://en.wikipedia.org/wiki/UTF-8#Description

Я нашел эту маленькую функцию в C здесь http://www.deanlee.cn/programming/convert-unicode-to-utf8/, но не проверял ее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...