Столкнулся с похожей задачей: дан входной файл в неизвестной кириллической кодировке, надо скриптом определить, что это за кодировка такая.
Мои требования: модуль должен устанавливается простым копированием *.pm файов и понимать DOS (CP866) и windows (CP1251) кодировки. Нашёл в сети (к сожалению, не на CPAN) модуль, эту задачу решающий. http://home.mts-nn.ru/~gosha/perl-scripts/Cyrillic/Read_me.txt http://home.mts-nn.ru/~gosha/perl-scripts/index.html#Cyrillic Автор - Игорь Окунев. На CPAN тоже нашёл пару модулей (не считая модуль Андрея Шитова, который (модуль, а не Андрей) решает немного другую задачу, или я не до конца понял). Вот они, эти модули: 1) Lingua::DetectCyrillic (автор - Алексей Руденко) http://search.cpan.org/~rudenko/Lingua-DetectCyrillic-0.02/DetectCyrillic.pm#item_Unicode%3A%3AMap8 Всё отлично, только модуль зависит от других двух, которые, чтобы поставить, надо компилировать. Пришлось отказаться. 2) Lingua::DetectCharset.pm (author - John Neystadt ) http://search.cpan.org/~jneystadt/cyrillic-1.05/Lingua/DetectCharset.pm Не поддерживает определение DOS-кодировки. PS Вот здесь есть могущие быть полезными ссылки http://www.opennet.ru/prog/info/2062.shtml 4 июня 2008 г. 12:08 пользователь Ruslan Zakirov <[EMAIL PROTECTED]> написал: > Есть всем известный детектор в mozilla based браузерах. Про него есть > пару статей: > * http://www.mozilla.org/projects/intl/UniversalCharsetDetection.html > - теория и анализ эффективности > * http://www.mozilla.org/projects/intl/ChardetInterface.htm - краткое > описание библиотеки > > Порты: > * java - http://www.chatnsearch.com/chardet.html > * python - http://chardet.feedparser.org/ > * perl - ??? > > Для перла нет, но можно портировать, есть примеры на нескольких языках. > > 2008/6/3 Павел Тимонин <[EMAIL PROTECTED]>: >> Товарищи, как мне определить кодировку входящего файла? Я получаю его как >> параметр в POST-запросе, и не знаю заранее в какой он кодировке. Программа >> работает в utf8. >> >> я знаю про use Encode, и знаю как из любой кодировки сделать utf8, но не >> знаю как определить :) копания в самом Encode не помогли моему пониманию. >> хотел проверить функцию getEncoding, но она не работает. компилятор ругается >> что ему не хватает Encoding::Alias, хотя он на месте. я его подключал (хотя >> в Encode.pm в этой функции он подключается через require), всё равно не >> работает. >> >> -- >> Moscow.pm mailing list >> [email protected] | http://moscow.pm.org >> >> > > > > -- > Best regards, Ruslan. > -- > Moscow.pm mailing list > [email protected] | http://moscow.pm.org > -- Moscow.pm mailing list [email protected] | http://moscow.pm.org
