Автор Тема: UTF-8 и не только  (Прочитано 5586 раз)

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
UTF-8 и не только
« : Ноябрь 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. Каким критериям вообще должна удовлетворять тру-реализация?

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: UTF-8 и не только
« Ответ #1 : Ноябрь 19, 2012, 01:52:04 pm »

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: UTF-8 и не только
« Ответ #2 : Ноябрь 19, 2012, 03:25:16 pm »

Berserker

  • Sr. Member
  • ****
  • Сообщений: 254
    • Просмотр профиля
Re: UTF-8 и не только
« Ответ #3 : Ноябрь 19, 2012, 04:27:44 pm »
Я вижу мало смысла предоставлять функцию преобразования кодировки и не предоставлять функцию изменения регистра. У iconv для PHP, например, нет возможности сменить регистр. Приходится использовать другое расширение.

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: UTF-8 и не только
« Ответ #4 : Ноябрь 19, 2012, 04:34:45 pm »
...Приходится использовать другое расширение.
Какое?

Berserker

  • Sr. Member
  • ****
  • Сообщений: 254
    • Просмотр профиля
Re: UTF-8 и не только
« Ответ #5 : Ноябрь 19, 2012, 06:57:24 pm »
Multibyte String. Функции с префиксом "mb_".

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: UTF-8 и не только
« Ответ #6 : Ноябрь 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.

albobin

  • Full Member
  • ***
  • Сообщений: 198
    • Просмотр профиля
Re: UTF-8 и не только
« Ответ #7 : Ноябрь 20, 2012, 07:34:44 am »
Хочу разобраться со всеми этими клятыми юникодами раз и навсегда.
Не совсем понятно, что имеется ввиду когда "раз и навсегда". Мне кажется, что реально
всё может быть гораздо проще, если круг задач позволяет.
Вот из своего опыта.  База данных и приложения - всё в MUMPSе. Потребовалось для связи с внешним миром данные конвертить в UTF-8 (туда и обратно), написан простецкий кодер/декодер (на MUMPSе, конечно) только русских букв и всё, больше погружаться в проблему нужды нет.

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: UTF-8 и не только
« Ответ #8 : Ноябрь 20, 2012, 07:56:17 am »
Ну я хочу просто подобрать/написать хороший инструментарий для всяких типичных задачек типа перегона UTF-8 в UTF-16 и обратно.
Вот на днях столкнулся с подобной проблемой на Lua. Гугол выдал кучу всяких разных велосипедных решений как в виде луашного кода, так и в виде сишных либ. Разбираться в этом зоопарке каждый раз желания нет, и кроме того нет доверия к этим велосипедам. Хочется иметь простой надежный инструмент под рукой.

Губанов Сергей Юрьевич

  • Hero Member
  • *****
  • Сообщений: 590
    • Просмотр профиля
    • Домашняя страница
Re: UTF-8 и не только
« Ответ #9 : Ноябрь 20, 2012, 11:40:22 am »
Ну я хочу просто подобрать/написать хороший инструментарий для всяких типичных задачек
Не заморачивался этим вопросом, но вроде дотнет "из коробки" знает UTF-7, 8, 16, 32. И в WinApi это должно бы быть уже давно реализованным.

Что, действительно, с этим есть проблемы?

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: UTF-8 и не только
« Ответ #10 : Ноябрь 20, 2012, 12:11:26 pm »
В винде проблем нет. Проблема если оно еще и в Linux должно работать. Т.е. хочется независимый инструмент.

Kemet

  • Hero Member
  • *****
  • Сообщений: 587
    • Просмотр профиля
Re: UTF-8 и не только
« Ответ #11 : Ноябрь 21, 2012, 03:34:13 pm »
Ещё есть во freepascal'е