Re: Первый блин
Feb. 24th, 2010 05:30 pmПытаюсь воткнуть свежезарелизенное в один из наших проектов. С одной стороны, конечно, надо придерживаться правила «Не сломалось — не чини», но, с другой, если модуль выложен на CPAN и, следовательно, уже не сильно связан с исходным проектом — нет смысла держать дубль. Пока натыкаюсь на ошибки:
Надо бы perlunicode перечитать...
Malformed UTF-8 character (unexpected continuation byte 0x80, with no preceding start byte) in pattern match (m//) at /usr/local/lib/perl5/site_perl/5.8.9/Lingua/RU/Inflect.pm line 254.Попробовал добавить в проблемный участок вызовы функций
[error] Caught exception in engine "Wide character in memGzip at /usr/local/lib/perl5/site_perl/5.8.9/Catalyst/Plugin/Compress/Gzip.pm line 36"
encode и decode:my @name = Lingua::RU::Inflect::inflect_given_name(
GENITIVE,
decode('utf8', $student->user_id->lname),
decode('utf8', $student->user_id->fname),
decode('utf8', $student->user_id->sname),
);
push @name, shift @name; # ФИО → ИОФ
$c->stash->{'student_genitive'} = encode('utf8', join(' ', @name));
Вроде, заработало, но выглядит паршиво.Надо бы perlunicode перечитать...
no subject
Date: 2010-02-24 03:55 pm (UTC)Вставь код:
use Devel::Peek;
Dump($student->user_id->lname);
и посмотри присутствует ли UTF8 во флагах. Да, по-хорошему все текстовые строки должны быть перекодированы во внутреннее представление сразу по поступлении извне (из файла, сокета, СУБД, ...). Не перекодированными должны оставаться только массивы двоичных данных. Откуда у тебя поступают данные для $student->user_id->[lfs]name ?
Откуда поступают
Date: 2010-02-25 06:59 am (UTC)DBIx::Class.