Oberon space
General Category => Общий раздел => Тема начата: 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. Каким критериям вообще должна удовлетворять тру-реализация?
-
How to Build libiconv with Microsoft Visual Studio (http://www.codeproject.com/Articles/302012/How-to-Build-libiconv-with-Microsoft-Visual-Studio)
-
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)
-
Я вижу мало смысла предоставлять функцию преобразования кодировки и не предоставлять функцию изменения регистра. У iconv для PHP, например, нет возможности сменить регистр. Приходится использовать другое расширение.
-
...Приходится использовать другое расширение.
Какое?
-
Multibyte String. Функции с префиксом "mb_".
-
Вот вроде тру кодер/декодер:
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.
-
Хочу разобраться со всеми этими клятыми юникодами раз и навсегда.
Не совсем понятно, что имеется ввиду когда "раз и навсегда". Мне кажется, что реально
всё может быть гораздо проще, если круг задач позволяет.
Вот из своего опыта. База данных и приложения - всё в MUMPSе. Потребовалось для связи с внешним миром данные конвертить в UTF-8 (туда и обратно), написан простецкий кодер/декодер (на MUMPSе, конечно) только русских букв и всё, больше погружаться в проблему нужды нет.
-
Ну я хочу просто подобрать/написать хороший инструментарий для всяких типичных задачек типа перегона UTF-8 в UTF-16 и обратно.
Вот на днях столкнулся с подобной проблемой на Lua. Гугол выдал кучу всяких разных велосипедных решений как в виде луашного кода, так и в виде сишных либ. Разбираться в этом зоопарке каждый раз желания нет, и кроме того нет доверия к этим велосипедам. Хочется иметь простой надежный инструмент под рукой.
-
Ну я хочу просто подобрать/написать хороший инструментарий для всяких типичных задачек
Не заморачивался этим вопросом, но вроде дотнет "из коробки" знает UTF-7, 8, 16, 32. И в WinApi это должно бы быть уже давно реализованным.
Что, действительно, с этим есть проблемы?
-
В винде проблем нет. Проблема если оно еще и в Linux должно работать. Т.е. хочется независимый инструмент.
-
Ещё есть во freepascal'е