[Moscow.pm] определение кодировки файла

Alex Shatlovsky shatlovsky на gmail.com
Чт Дек 11 05:45:47 PST 2008


2008/12/11 Dmitry Arsentiev <dmarsentev на gmail.com>:
> Столкнулся с похожей задачей: дан входной файл
> в неизвестной кириллической кодировке, надо скриптом определить,
> что это за кодировка такая.
>
> Мои требования:
> модуль должен устанавливается простым копированием *.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-кодировки.

Если посмотреть на
http://search.cpan.org/src/JNEYSTADT/cyrillic-1.05/Lingua/DetectCharset/StatKoi.pm
http://search.cpan.org/src/JNEYSTADT/cyrillic-1.05/Lingua/DetectCharset/StatWin.pm

то можно догадаться, что StatDos.pm сделать довольно просто
самостоятельно при помощи iconv.

--

>
>
> PS Вот здесь есть могущие быть полезными ссылки
> http://www.opennet.ru/prog/info/2062.shtml
>
>
>
>
> 4 июня 2008 г. 12:08 пользователь Ruslan Zakirov
> <ruz на bestpractical.com> написал:
>> Есть всем известный детектор в 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 Павел Тимонин <gg.error на gmail.com>:
>>> Товарищи, как мне определить кодировку входящего файла? Я получаю его как
>>> параметр в POST-запросе, и не знаю заранее в какой он кодировке. Программа
>>> работает в utf8.
>>>
>>> я знаю про use Encode, и знаю как из любой кодировки сделать utf8, но не
>>> знаю как определить :) копания в самом Encode не помогли моему пониманию.
>>> хотел проверить функцию getEncoding, но она не работает. компилятор ругается
>>> что ему не хватает Encoding::Alias, хотя он на месте. я его подключал (хотя
>>> в Encode.pm в этой функции он подключается через require), всё равно не
>>> работает.
>>>
>>> --
>>> Moscow.pm mailing list
>>> moscow-pm на pm.org | http://moscow.pm.org
>>>
>>>
>>
>>
>>
>> --
>> Best regards, Ruslan.
>> --
>> Moscow.pm mailing list
>> moscow-pm на pm.org | http://moscow.pm.org
>>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>



-- 
С уважением,
А.Н.Шатловский


Подробная информация о списке рассылки Moscow-pm