Здравствуйте, Amouse, Вы писали:
A>Необходима библиотека для работы с юникодом под win/linux. A>Что можете посоветовать? A>ICU — хорошая вещь? Вроде лицензия не GNU, допускает любое использование.
ICU — хорошая библиотека! Она позволяет работать не только с различным Unicode'ом типа
UTF8, UTF16-LE, UTF16-BE, UTF32-LE, UTF32-BE, но с различными национальными наборами
символов. Например можно попытаться преобразовать UTF8 к какому-нибудь национальному набору символов, например,
к windows-1251. Полное число поддерживаемых кодировок можно найти в документации к библиотеке или
на официальном сайте IBM (http://www-950.ibm.com/software/globalization/icu/demo/converters)
Если вы хотите работать только с Unicode'ом, то вполне возможно (не знаю вашей задачи), что
вас устроит простое использование wstring'a !?
Есть ещё open-source библиотека, похожая интерфейсом на ICU. Называется, если не ошибаюсь, iconv
В принципе, я её не использовал в своих проектах, но плохого ничего не слышал
Amouse wrote: > Но ведь весь смысл универсальной библиотеки в том, чтобы не заботиться > об особенностях обработки конкретных языков? > А если у меня алгоритм содержит tolower при обработке, скажем имен > файлов? и что мне делать?
Тебе нужен не tolower, а метод нормализации текста. Это само по себе уже
непросто и тоже не всегда решается в общем случае.
Обычно можно переводить текст в title case (который не обязательно
совпадает с upper case'ом), это будет самое надежное из того, что можно
сделать без обработки специальных случаев.
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re: библиотека для работы с юникодом
От:
Аноним
Дата:
09.10.06 07:51
Оценка:
A>Необходима библиотека для работы с юникодом под win/linux.
А что значит "библиотека"? С юникодом нужно брать — и работать.
Необходима библиотека для работы с юникодом под win/linux.
Что можете посоветовать?
ICU — хорошая вещь? Вроде лицензия не GNU, допускает любое использование.
_vvs wrote:
> Есть ещё open-source библиотека, похожая интерфейсом на ICU. Называется, > если не ошибаюсь, iconv
Вообще-то это разные вещи. iconv — перекодировщик из любой кодировки в любую, всё. В API только три функции
iconv_open/iconv/iconv_close.
ICU — поддержка всякой языково-зависимой туфты, типа сортировки в алфавитном порядке, преборазование регистра, классы
символов (буквы, цифры, знаки препинания и прочее), таймзоны/даты, данные locale и прочее.
Posted via RSDN NNTP Server 2.0
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Здравствуйте, kan, Вы писали:
kan>_vvs wrote:
>> Есть ещё open-source библиотека, похожая интерфейсом на ICU. Называется, >> если не ошибаюсь, iconv kan>Вообще-то это разные вещи. iconv — перекодировщик из любой кодировки в любую, всё. В API только три функции kan>iconv_open/iconv/iconv_close. kan>ICU — поддержка всякой языково-зависимой туфты, типа сортировки в алфавитном порядке, преборазование регистра, классы kan>символов (буквы, цифры, знаки препинания и прочее), таймзоны/даты, данные locale и прочее.
Согласен. ICU более навороченная. Там гораздо больше функциональности
Но всё, что касается преобразования набора символов (преобразование из одного набора символов в другой), очень похоже в этих библиотеках.
Я имел в виду в функции iconv (из iconv) и ucnv_convert (из ICU)
Просто изначальный вопрос был про преобразование Unicode'a ....
Здравствуйте, kan, Вы писали:
kan>_vvs wrote:
>> Есть ещё open-source библиотека, похожая интерфейсом на ICU. Называется, >> если не ошибаюсь, iconv kan>Вообще-то это разные вещи. iconv — перекодировщик из любой кодировки в любую, всё. В API только три функции kan>iconv_open/iconv/iconv_close. kan>ICU — поддержка всякой языково-зависимой туфты, типа сортировки в алфавитном порядке, преборазование регистра, классы kan>символов (буквы, цифры, знаки препинания и прочее), таймзоны/даты, данные locale и прочее.
т.е она сделает мне tolower для китайских иероглифов?
Amouse wrote: > т.е она сделает мне tolower для китайских иероглифов?
Без проблем, результатом будут те же иероглифы.
Кстати, tolower/toupper вообще возможен не для всех языков, а в
некоторых языках имеет не совсем нормальную семантику. Например, в
немецком языке при преобразовании в upper case буква эс-цет должна
заменяться двумя 's'. И т.п.
Здравствуйте, Cyberax, Вы писали:
C>Кстати, tolower/toupper вообще возможен не для всех языков, а в C>некоторых языках имеет не совсем нормальную семантику. Например, в C>немецком языке при преобразовании в upper case буква эс-цет должна C>заменяться двумя 's'. И т.п.
Но ведь весь смысл универсальной библиотеки в том, чтобы не заботиться об особенностях обработки конкретных языков?
А если у меня алгоритм содержит tolower при обработке, скажем имен файлов? и что мне делать?
Re[4]: библиотека для работы с юникодом
От:
Аноним
Дата:
10.10.06 05:56
Оценка:
_>Просто изначальный вопрос был про преобразование Unicode'a ....
Как раз в изначальном вопросе о преобразованиях ничего не было. Там было слово "боблиотека" —
Re[5]: библиотека для работы с юникодом
От:
Аноним
Дата:
10.10.06 07:44
Оценка:
Здравствуйте, Аноним, Вы писали:
_>>Просто изначальный вопрос был про преобразование Unicode'a ....
А>Как раз в изначальном вопросе о преобразованиях ничего не было. Там было слово "боблиотека" —
Здравствуйте, Аноним, Вы писали:
_>>Просто изначальный вопрос был про преобразование Unicode'a ....
А>Как раз в изначальном вопросе о преобразованиях ничего не было. Там было слово "боблиотека" —
вообще-то вменяемую библиотеку для работы с юникодом, без ф-ций преобразования, представить тяжело.