- RU.PERL ----------------------------------------------------------- RU.PERL -
Msg : #5460 [551]
От : Alexander Reznikov 2:4600/220 29 декабря 04, 04:41
Кому : All 04 января 05, 19:42
Тема : utf8, разновсякие кодировки и Encode
-------------------------------------------------------------------------------
·•*.$.*•· Приветствую тебя, All! ·•*.$.*•·
У меня есть некий код, который сейчас работает на Perl 5.6.x и Unicode::String
+ Unicode::Map8. Hо сейчас перл меняется на версию 5.8.6 со встроенной
поддержкой юникода. К тому же в ActiveState и theoryx5.uwinnipeg.ca
репозиториях для ActivePerl'а нету Unicode::Map8. Скомпилировать самому,
конечно, не проблема, но хотелось бы для рабочего кода иметь общедоступные на
платформе win32 модули. Короче говоря, есть желание отказаться от
Unicode::Map8.
А вот что нужно сделать:
1. Перекодировка из некой произвольной кодировки (естественно, кодировка должна
поддерживаться) в utf8. Символы, которые не могут быть перекодированы в utf8,
должны заменяться на некую строку, например: <$cpname:\x44>. В Unicode::Map8
можно так сделать, хотя и не слишком удобным способом - через создание своего
пакэйджа. В Encode же это обещают "In future"...
Крайне желательна возможность менять кое-что в предопределённых кодировках или
создавать новые. В Unicode::Map8 со всем этим довольно хорошо. В Encode -
плохо. Ибо для скорости нужен XS, а с учётом работы скрипта под Win32 для
"пересборки" кодировки становится нужен ещё и компилятор C.
2. Перекодировка из utf8 в конкретную кодировку. Тут также нужно иметь
возможность обрабатывать отдельно отсутствующие в целевой кодировке символы и
вставлять в результирующую строку что-то типа .
Hеобходима также возможность переопределять правила перекодирования. Это можно
реализовать через предварительную обработку строки в utf8 при помощи s/// или
tr///.
Есть ли какое-нибудь готовое решение? Или к Encode лучше с такими запросами и
не соваться?
Баюшки !!
[ Черёмухин aka Гибкость TEAM ] [ UU9JЁКЛМH ]
--- Дедушка GoldED+/W32 1.1.5-2004.01.21
* Origin: Я не фидошник. Я просто так выгляжу.. (2:4600/220)