[Moscow.pm] Очень плохая музыка с UTF-8

Денис Ильиных greyhard на gmail.com
Пн Апр 4 23:54:02 PDT 2011


По советам сделал следующее

перекодирую так
my $cv = Text::Iconv->new("utf-8", "cp1251");
$text = $cv->convert($str);
ошибок нет вывод просто пустой.

По вашим советам
utf8::is_utf8($str) => 1;

my $utf8 = pack 'C*', unpack 'U0C*',$str;
--- Часы мужские CHARMEX VIENNA CH 2031
― Самые Модные Часы

my $utf8 = pack 'U0C*', unpack 'C*',$str;
--- "'0AK <C6A:85 CHARMEX VIENNA CH 2031 \x15 !0<K5 \x1c>4=K5 '0AK"

А если encode('cp1251', $text, 1)?
"\x{2015}" does not map to cp1251 at
/usr/local/lib/perl5/5.10.1/mach/Encode.pm line 158.
Мне кажется что проблема в том что некоторые символы не могут быть
перекодированы в cp1251 потому ничего не происходит


Более подробно.
Я собираю заголовки сайтов.
LWP -> $tree =
HTML::TreeBuilder->new_from_content($response->decoded_content);
$title = $tree->look_down(_tag=>"title");
my $ntitle = $title->as_text;

Ошибка на сайте
--- GET => http://www.m-m-i.ru/index.php?productID=1181

Это исключение чем правило. Другие заголовки сайтов в UTF-8 обрабатываются
корректно.



5 апреля 2011 г. 10:34 пользователь Mike Salnikov
<msalnikov на parallels.com>написал:

> А если encode('cp1251', $text, 1)?
>
> http://perldoc.perl.org/Encode.html#Handling-Malformed-Data
>
>
>
> Что говорит is_utf8($text)?
>
>
>
> ----
>
> Mike Salnikov
>
> Parallels
>
>
>
> *From:* moscow-pm-bounces+msalnikov=parallels.com на pm.org [mailto:
> moscow-pm-bounces+msalnikov=parallels.com на pm.org] *On Behalf Of *Денис
> Ильиных
> *Sent:* Tuesday, April 05, 2011 1:02 PM
> *To:* moscow-pm на pm.org
> *Subject:* [Moscow.pm] Очень плохая музыка с UTF-8
>
>
>
> Привет мои дорогие )) Помогите разобраться сломал уже весь моск.
>
> Есть строка в UTF-8 о чем нам говорит Encode::Detect::Detector;
>
> Пытаюсь ее перевести в cp1251 в итоге
>
> --- UTF-8 (Encode::Detect::Detector)
> --- Часы мужские CHARMEX VIENNA CH 2031 ― Самые
> Модные Часы (строка)
> --- ~  (тут должен был быть текст Text::Iconv )
> --- '×à ñû ìóæñêèå CHARMEX VIENNA CH 2031 ? Ñà ìûå
> Ìîäíûå Г—Г Г±Г»' (тут текст encode('cp1251',$text))
>
> Причем другие строки которые детектируются как UTF-8 обрабатываются
> корректно.
> Есть подозрение что в строке есть спецсимволы на которых Iconv не
> срабатывает или строка не UTF-8, ошибается детектор.
>
> perl 5.10.1
>
>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>
>
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20110405/5c8acae8/attachment-0001.html>


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