Re: Возможна ли поддержка тиклем юникода?
Alexey Pechnikov wrote:
> В сообщении от Sunday 18 January 2009 19:35:08 Serhiy Storchaka
> написал(а):
>> Alexey Pechnikov wrote:
>> > А где в системе библиотека для работы с юникодом? Рекомендованной вами
>> > libunicode в дебиане нет.
>>
>> Как это нет? Пакеты libunicode0 и libunicode-dev.
>
> Таких пакетов нет. На хосте с ленни:
В этче есть.
>> > Еще вопрос по последней - в ней используется
>> > utf-16, хотя хотелось бы работать со стандартным для линукса utf-8,
>>
>> Есть и UTF-8, и UTF-16, и UTF-32, разных эндингов, и конвертация в другие
>> кодировки (неплохая компактная переносимая альтернатива iconv получается,
>> как я погляжу).
>
> Все операции выполняются с utf-16. Это что же, конвертить в utf16 и
> обратно при каждом преобразовании? Стандарт в линуксе это utf-8.
Нет, функции работают преимущественно с UTF-32 или UTF-8. Откуда UTF-16?
>> В этой библиотеке нет функции сравнения строк. Для правильного сравнения
>> похоже и нужны мегабайты libicu.
>
> Зачем она тогда нужна? unaccent делать не умеет, сравнивать не умеет...
Уникодные аналоги ctype.h, плюс кое-какие функции для работы с UTF-8, плюс
конвертация.
Если не смущает зависимость от локали и переносимость за пределы линукса, то
всё это делается стандартными функциями C99 для работы с широкими и
многобайтовыми символами (man -k multibyte wide-character 'wide character')
и iconv. В линуксе, кстати, представление wchar_t будет совпадать с UTF-32.
> Возвращаясь к вопросу - какую стандартную либу дебиана брать для работы с
> юникодом? Нужно преобразование регистра,
towlower, towupper, wctrans+towctrans.
> удаление акцента,
libunac, возможно wctrans+towctrans.
> сравнение
> (согласен на базовый юникодное, хотя возможность указания кодовой страницы
> будет полезна).
wcscmp, strcmp строк в UTF-8.
Reply to: