Oberon space

General Category => Общий раздел => Тема начата: ilovb от Ноябрь 19, 2012, 01:50:24 pm

Название: UTF-8 и не только
Отправлено: ilovb от Ноябрь 19, 2012, 01:50:24 pm
Хочу разобраться со всеми этими клятыми юникодами раз и навсегда. Предлагаю в этой ветке делиться литературой, алгоритмами, материалами, библиотеками и утилитами.

гугол мне подсказывает что самое ходовое для работы с кодировками вообще и юникодами в частности - это  libiconv:
http://www.gnu.org/software/libiconv/
http://ru.wikipedia.org/wiki/Iconv
http://www.opennet.ru/man.shtml?topic=iconv&category=1&russian=0

под мастдай:
http://gnuwin32.sourceforge.net/packages/libiconv.htm
http://sourceforge.net/projects/mingw/files/MSYS/Base/libiconv/libiconv-1.14-1/

для php:
http://www.php.net/iconv

Еще меня интересуют два вопроса по UTF-8:
1. Где взять исходники тру-кодера/декодера?
2. Каким критериям вообще должна удовлетворять тру-реализация?
Название: Re: UTF-8 и не только
Отправлено: ilovb от Ноябрь 19, 2012, 01:52:04 pm
How to Build libiconv with Microsoft Visual Studio (http://www.codeproject.com/Articles/302012/How-to-Build-libiconv-with-Microsoft-Visual-Studio)
Название: Re: UTF-8 и не только
Отправлено: ilovb от Ноябрь 19, 2012, 03:25:16 pm
UTF-8 decoder capability and stress test (http://www.unicode.org/mail-arch/unicode-ml/Archives-Old/UML019/att-0087/01-UTF-8-test.txt)
Название: Re: UTF-8 и не только
Отправлено: Berserker от Ноябрь 19, 2012, 04:27:44 pm
Я вижу мало смысла предоставлять функцию преобразования кодировки и не предоставлять функцию изменения регистра. У iconv для PHP, например, нет возможности сменить регистр. Приходится использовать другое расширение.
Название: Re: UTF-8 и не только
Отправлено: ilovb от Ноябрь 19, 2012, 04:34:45 pm
...Приходится использовать другое расширение.
Какое?
Название: Re: UTF-8 и не только
Отправлено: Berserker от Ноябрь 19, 2012, 06:57:24 pm
Multibyte String. Функции с префиксом "mb_".
Название: Re: UTF-8 и не только
Отправлено: ilovb от Ноябрь 20, 2012, 07:15:13 am
Вот вроде тру кодер/декодер:
http://www.opensource.apple.com/source/tidy/tidy-5/tidy/src/utf8.c

И еще одна интересная реализация:
http://bjoern.hoehrmann.de/utf-8/decoder/dfa/
Цитировать
Systems with elaborate Unicode support usually confront programmers with a multitude of different functions and macros to process UTF-8 encoded strings, often with different ideas on handling buffer boundaries, state between calls, error conditions, and performance characteristics, making them difficult to use correctly and efficiently. Implementations also tend to be very long and complicated; one popular library has over 500 lines of code just for one version of the decoder. This page presents one that is very easy to use correctly, short, small, fast, and free.
Название: Re: UTF-8 и не только
Отправлено: albobin от Ноябрь 20, 2012, 07:34:44 am
Хочу разобраться со всеми этими клятыми юникодами раз и навсегда.
Не совсем понятно, что имеется ввиду когда "раз и навсегда". Мне кажется, что реально
всё может быть гораздо проще, если круг задач позволяет.
Вот из своего опыта.  База данных и приложения - всё в MUMPSе. Потребовалось для связи с внешним миром данные конвертить в UTF-8 (туда и обратно), написан простецкий кодер/декодер (на MUMPSе, конечно) только русских букв и всё, больше погружаться в проблему нужды нет.
Название: Re: UTF-8 и не только
Отправлено: ilovb от Ноябрь 20, 2012, 07:56:17 am
Ну я хочу просто подобрать/написать хороший инструментарий для всяких типичных задачек типа перегона UTF-8 в UTF-16 и обратно.
Вот на днях столкнулся с подобной проблемой на Lua. Гугол выдал кучу всяких разных велосипедных решений как в виде луашного кода, так и в виде сишных либ. Разбираться в этом зоопарке каждый раз желания нет, и кроме того нет доверия к этим велосипедам. Хочется иметь простой надежный инструмент под рукой.
Название: Re: UTF-8 и не только
Отправлено: Губанов Сергей Юрьевич от Ноябрь 20, 2012, 11:40:22 am
Ну я хочу просто подобрать/написать хороший инструментарий для всяких типичных задачек
Не заморачивался этим вопросом, но вроде дотнет "из коробки" знает UTF-7, 8, 16, 32. И в WinApi это должно бы быть уже давно реализованным.

Что, действительно, с этим есть проблемы?
Название: Re: UTF-8 и не только
Отправлено: ilovb от Ноябрь 20, 2012, 12:11:26 pm
В винде проблем нет. Проблема если оно еще и в Linux должно работать. Т.е. хочется независимый инструмент.
Название: Re: UTF-8 и не только
Отправлено: Kemet от Ноябрь 21, 2012, 03:34:13 pm
Ещё есть во freepascal'е