Я ищу портативную и простую в использовании библиотеку строк для 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, вдоль моего приложения.
Знаете ли вы такую библиотеку, которая также поддерживается? В конце концов, это кажется довольно простой проблемой.