Xpoint
   [напомнить пароль]

Как преобразовать все кодировки на utf-8

Метки: [без меток]
2008-02-03 12:56:36 [обр] Mohammed[досье]
Как можно заделать перл скрипт распознал кодировки ( utf-8 , cp1251, koir-8, utf-16 ) из (указанных)
URL адресов и перекодировал их на UTF-8
Или Script который смог читать заголовки meta charset из (указанных) URL адресов
спустя 1 час 37 минут [обр] Алексей Севрюков(198/1280)[досье]
  1. perldoc Encode
  2. брать кодировку правильнее из заголовков, а не из meta.
  3. Если из meta то, perldoc perlre оператор m.
спустя 47 минут [обр] Mohammed[досье]
А как можно брать кодировку из заголовков ?
Пожалуйста, если сможете, покажите маленький пример.
спустя 1 час 9 минут [обр] Алексей Севрюков(198/1280)[досье]

Mohammed[досье] perldoc LWP::UserAgent, perldoc HTTP::Response

my $url="http://melkosoft.ru";
my $ua = LWP::UserAgent->new();
$ua->timeout(60);
my $response = $ua->get($url);
my $charset_str=($response->header('Content-Type'))[0] ||  $response->header('Content-Type'); # помоему в некоторых случаях метод header возвращал массив. Почему - я не разбирался.
my $charset = $charset_str=~m#charset=([a-zA-Z0-9_-]+)#;
print "Charset: $charset";

P.S. И в случае с meta и в случае с заголовками следует учитывать что некоторые верстальщики/программеры/вебмастера указывают неправильные кодировки. У Вас набор кодировок ограниченный, поэтому следует позаботится о том, чтобы правильно определить принадлежит ли кодировка одной из указанных Вами. Потому что если Вы укажите неверную кодировку модулю Encode - он выдаст ошибку.

спустя 19 часов [обр] Mohammed[досье]
Спасибо за помощь. Я использовал метод прочесть кодировку из заголовков
Но и как вы предупреждали, там получилось много ошибок.
Может, если я объясню, что я хочу делать, вы мне можете помочь.
У меня есть перл паук, который читает данные из сайтов и записывает на базу.
Мне надо, что все данные записались на mysql в кодировке Utf-8 чтоб их потом я
 смог легко прочесть.
Проблема в том что я не могу определять на каком кодировке, какой сайт чтобы их
перекодировать на Utf-8.
А если другой метод распознание кодировки?
Скажем из текста смог отличать на каком кодировки этот сайт..
Алексей Севрюков[досье]
спустя 1 час 15 минут [обр] Dennis F. Latypoff aka funky_dennis(24/78)[досье]
Powered by POEM™ Engine Copyright © 2002-2005