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]

Ответить