@diegocoder

Какую библиотеку использовать для работы с UTF-8?

В общем то ответ на данный вопрос уже есть: grigory.info/UTF8Strings.About.html
Проблема в том, что эта библиотека выложена под лицензией GNU GPL. Ищу аналогичную библиотеку но под нормальной лицензией(MIT например). Без wstring и прочих гадостей, нужен просто класс строки, поддерживающей юникод. Чтобы строки этого класса можно было использовать точно так же, как и обычные C++ string. Ещё раз повторюсь - аналогичную той, что доступна выше по ссылке. Гугл выдает монстроуозный ICU и прочее в таком духе, а чего-то простенького как эта библиотека так и не нашел.
Также не помешает ваш собственный опыт реализации юникода в ваших проектах.
  • Вопрос задан
  • 1318 просмотров
Пригласить эксперта
Ответы на вопрос 2
maaGames
@maaGames
Погроммирую программы
Зачем вам UTF-8? Использовать UTF-8 в рантайме, как минимум не эффективно, как максимум - глупо.
wstring - класс строки, поддерживающий юникод.
UTF-8 - не юникод. Это формат преобразования юникод символов в 8 битные наборы символов. С ними оооочень неудобно работать (даже для сравнения символов придётся использовать специальные функции). Для хранения UTF-8 в рантайме можно использовать "обычный" std::string.
А вот для сохранения на диск юникодовые строки может быть эффективнее преобразовывать в UTF-8, если большая часть текста написана на английском языке. Иначе можно в юникоде и сохранять, разницы по объёму файла не будет.
Ответ написан
Olej
@Olej
инженер, программист, преподаватель
Если это Linux:
- если вам не нужен контекстный поиск, оператор find STL и т.п., то в C++ string более чем достаточно для хранений и манипуляций с UTF-8
- если вам нужен поиск и вообще разбор контекста, то это wstring, wchar_t и т.д. - это специально создано для представления Unicode в C++
- если вам нужны какие-то преобразования char <-> wchar_t, то для этого у вас группа функций "мультибайт символов" mb*()

А если у вас Windows ... то там и всё связанное с Unicode - через задницу и ... "я скорблю вместе с вами" ;-)
(в более ранних Windows Microsoft пнимали Unicode как UTF-16, в последних не знаю ... Бог миловал)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы