Hello! В сообщении от Monday 19 January 2009 14:56:02 Serhiy Storchaka написал(а): > Alexey Pechnikov wrote: > > В libunicode-0.7v/include/unicode.h есть > > typedef u_int16_t Uchar; > > > > Разве это не utf-16? Плюс предлагаются функции преобразования utf8 <-> > > utf16. Про utf32 в коде не вижу даже упоминания. > > Странно, в 0.4 использовались по крайней мере 32-битные символы для > внутреннего представления, да и код рассчитан на >16 бит. Мы точно об одной > и той же библиотеке говорим?
Наверное, о разных - вроде их две, одна из которых гномовская, а другая "сама по себе". Впрочем, хватает и towupper/towlower, эта либа пожалуй и не нужна. > > Возможно, но использование libicu в 4 раза замедляет запросы, это просто > > немыслимо. Ну и размер либы нереально большой. > > Энтерпрайз. Ну вот такой он непростой, уникод. Зато понятно, почему разработчики избегают этой либы. Но, к сожалению, некоторые используют, а в паре с эскулайт использование icu и вовсе выглядит чудовищно. > > > С iconv понятно, перекодировку внешних данных делаю именно через него, а > > храню все уже в utf8. А как правильно работать с utf8, чтобы избежать > > лишних перекодировок? Поскольку расширение нужно для embedded СУБД, > > вопрос производительности приоритетный. Есть строки в utf8, какие функции > > использовать для достижения максимальной производительности? > > А какие функции нужны? Удаление акцента для символов utf8. Библиотека unaccent работает, но как-то странно - обязательно делает перекодировку даже для utf-16be (при вызове unac_string_utf16 почему-то заглавная буква Ё превращается в непонятный значок, а unac_string с указанием кодировки возвращает корректный результат), хотя по документации не должна, и я никак не могу понять, можно ли ее использовать для работы с utf8 представлением. strncasecmp с utf8 почему-то не работает. wcsncasecmp для utf16 не проверял, может быть и работает... Best regards, Alexey. -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected]

