Портативная и простая библиотека строк Unicode для C/C++?

Я ищу портативную и простую в использовании библиотеку строк для 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, мне потребуется преобразование в него тем не мение).

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

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

3 ответа

Решение

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

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

Существует еще одна переносимая библиотека C для преобразования строк между UTF-8, UTF-16, UTF-32, wchar - библиотека mdz_unicode .

Другие вопросы по тегам