Библиотеки для работы с Unicode в C?

В настоящее время я использую char *строки в своей программе C. Я хотел бы узнать, как реализовать поддержку Unicode, и рассматривал utf8proc.

Является ли utf8procлучшая универсальная библиотека Unicode для C? Помимо документации в заголовочном файле, есть ли примеры его использования?

Например, я могу понять, как скомпилировать utf8procв свою кодовую базу, но кроме этого я в растерянности — мне продолжать использовать char *или использовать какой-то другой тип? Такие вещи плохо описаны.

Если есть лучшие библиотеки или библиотеки с лучшей документацией, на что мне обратить внимание?

Какой функционал вы ищете? Разбить UTF-8 на символы? в глифы? Преобразование между представлениями? Классы символов (например, выяснение того, что такое пробел)? …
Если вы хотите обрабатывать весь Unicode, вам нужно искать библиотеку UTF-16, а не UTF-8.
Я хочу, чтобы пользователи передавали матрицу данных с помеченными строками и столбцами (возможно, содержащими символы Unicode) в мою программу, и моя программа обрабатывает эту матрицу данных во внутреннем хранилище данных. Затем моя программа обрабатывает это хранилище данных и отображает его в файл SVG, который может содержать строки в формате Unicode, размещенные в определенных местах. Поэтому я хочу знать, как поддерживать чтение и запись таких строк. Я могу работать с ASCII, потому что (unsigned) char *делает это за меня. Однако я хочу иметь возможность поддерживать пользователей, не говорящих на ASCII. Это поможет прояснить ситуацию?

Ответы (1)

Это не библиотека как таковая, но я написал несколько функций UTF-8 для своих собственных проектов на C, которые вы можете найти здесь, в файлах unicode.hи . unicode.cОни используют лицензию MIT, поэтому вы можете делать с ними все, что захотите.