Переносимая и простая библиотека строк Unicode для C / C ++? - PullRequest
16 голосов
/ 11 января 2009

Я ищу портативную и простую в использовании библиотеку строк для C / C ++, которая поможет мне работать с вводом / выводом Unicode. В лучшем случае он хранит свои строки в памяти в UTF-8 и позволяет мне преобразовывать строки из ASCII в UTF-8 / UTF-16 и обратно. Мне не нужно больше, кроме этого (хорошо, либеральная лицензия не повредит). Я видел, что C ++ поставляется с заголовком <locale>, но, похоже, это работает только на wchar_t, который может быть или не быть в кодировке UTF-16, плюс я не уверен, насколько хорошо это на самом деле.

Примеры использования, например: В Windows API-интерфейсы Unicode ожидают строки UTF-16, и мне нужно преобразовать строки ASCII или UTF-8, чтобы передать их в API. То же самое касается синтаксического анализа XML, который может поставляться с UTF-16, но на самом деле я хочу обрабатывать только внутренне с помощью UTF-8 (или, если уж на то пошло, если я переключусь внутри на UTF-16, мне потребуется преобразование в в любом случае).

Пока что я посмотрел на ICU , который довольно большой. Более того, он хочет быть собран с использованием собственных файлов проекта, в то время как я бы предпочел библиотеку, для которой есть проект CMake или которую легко собрать (что-то вроде компиляции всех этих файлов .c, ссылки и готово к работе) вместо отправки чего-то большого, как ICU, вдоль моего приложения.

Знаете ли вы такую ​​библиотеку, которая также поддерживается? В конце концов, это кажется довольно простой проблемой.

Ответы [ 2 ]

20 голосов
/ 11 января 2009

UTF8-CPP кажется именно тем, что вы хотите.

2 голосов
/ 11 января 2009

Я бы порекомендовал вам взглянуть на библиотеку GNU iconv .

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