Мне нужна хорошая библиотека Unicode для С++. Мне нужно:
- Преобразования чувствительны к Unicode. Например, сортируйте все строки в режиме без учета регистра и получите их первые символы для индекса. Преобразование различных строк Unicode в верхний и нижний регистр. Разделите текст в разумной позиции - слова, которые будут работать и для китайцев, и для японцев.
- Форматирование чисел, дат в чувствительном к языку пути (должно быть потокобезопасным).
- Прозрачная поддержка UTF-8 (первичное внутреннее представление).
Насколько я знаю, лучшей библиотекой является ICU. Тем не менее, я не могу найти нормальную документацию API для разработчиков с примерами. Также, насколько я понимаю, это не слишком дружелюбно с современный дизайн на С++, работа с STL и т.д. Вот так:
std::string msg;
unistring umsg.from_utf8(msg);
unistring::word_iterator wi;
for(wi=umsg.words().begin(),n=0;wi!=usmg.words().wi_end(),n<10;++wi,++n)
;
msg=umsg.substr(umsg.words().begin(),wi).to_utf8();
cout<<_("Five 10 words are ")<<msg;
Есть ли хорошая оболочка ICU, совместимая с STL, выпущенная под лицензией Open Source? Предпочтительным является разрешающая лицензия, такая как MIT или Boost, но другие, такие как совместимые с LGPLv2, также в порядке.
Есть ли еще библиотека высокого качества, подобная ICU?
Платформа: Unix/POSIX, поддержка Windows не требуется.
Изменить: К сожалению, я не был зарегистрирован, поэтому я не могу принять ответ. Я сам приложил ответ.