[Moscow.pm] Доклад по utf8
Dmitry E. Oboukhov
unera на debian.org
Вт Сен 2 06:07:31 PDT 2008
> Доброе время суток.
> А я не нашел или доклад по utf8 так и не выложили на веб ?
кстати в свете CGI и переезда на perl 5.8.10
тут такая проблема, не везде где используется мой скрипт cgi стоит CGI с
поддержкой utf8 (в Debian еще CGI старой версии топчется)
местами старый, потому написал потомка что-то в стиле (реально
посложнее, с wantarray и Vars, тут только суть):
use base qw(CGI);
sub param
{
my $class=shift;
my @result=$class->SUPER::param(@_);
for (@result)
{
next if (utf8::is_utf8($_));
$_ = decode utf8=>$_;
}
return @result;
}
и наткнулся на неприятность на perl 5.10:
некоторые строки дают true по флагу utf8::is_utf8, и потому их данный
механизм пропускает, а в реале они не utf8
то есть одинаковый код вида
$var = myCGI->param('name');
может дать как строку с флагом, так и без, зависимости я не уловил от
чего зависит, по видимому от контента который приходит :(
пришлось сделать нечто вроде
my $tmp = eval {decode utf8=>$_;};
$_=$tmp unless $@;
работает, но не очень красиво это все выглядит.
по какому критерию он считает некоторые строки что они с установленным
флагом я не понял.
кто-либо натыкался на аналогичные траблы?
--
... mpd paused: Manowar - Defender
. ''`. Dmitry E. Oboukhov
: :’ : email: unera на debian.org jabber://UNera@uvw.ru
`. `~’ GPGKey: 1024D / F8E26537 2006-11-21
`- 1B23 D4F8 8EC0 D902 0555 E438 AB8C 00CF F8E2 6537
----------- следущая часть -----------
A non-text attachment was scrubbed...
Name: отсутствует
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20080902/918b931c/attachment-0001.bin>
Подробная информация о списке рассылки Moscow-pm