[Moscow.pm] Дайджест списка рассылки Moscow-pm; том 11, выпуск 7
Vladimir V. Perepelitsa
inthrax на gmail.com
Чт Сен 4 04:03:56 PDT 2008
они не пытается сделать ничего лишнего.
поэтому любая строка, полученная от param - это октеты.
Собсственно я и юзаю CGI::Minimal с оберткой для заутфливания. ))
это можно сделать приблизительно так:
sub _utf($) {
return undef unless defined $_[0];
utf8::decode($_[0]);
utf8::upgrade($_[0]);
$_[0];
}
my $cgi = CGI::Minimal->new();
# After creation of cgi, upgrade all data to utf:
my $c = $cgi->{ref $cgi};
_utf($_) for @{$c->{field_names}};
my $hash = $c->{field};
for ( keys %$hash ) {
my $nk = $_;_utf($nk);
my $v = $hash->{$nk} = delete $hash->{$_};
for (0..$v->{count}-1) {
if (length $v->{filename}[$_]) {
_utf($v->{filename}[$_]);
}else{
_utf($v->{value}[$_]);
}
}
}
On Thursday 04 September 2008 12:44:56 ksurent wrote:
> Подумываю щас о переходе на CGI::Minimal. Как у него дела с утф8 обстоят?
>
> On Thursday 04 September 2008 00:47:25 Павел Тимонин wrote:
> > > мааленькая поправка к докладу.
> > > для корректного определения входных данных в утф8 при и спользовании
> > > CGI
> > >
> > > >=3.30 (3.41 тоже вроде) необходимо говорить
> > >
> > > use CGI qw{:utf8};
> > > иначе в параметрах оказываются кракозяблы и ничего не работает. это
> >
> > конечно
> >
> > > не отменяет необходимости указывать
> > > utf8, encoding ":utf8", open ":std :utf8", писать $c->charset("utf-8")
> > > и прочего.
--
Vladimir Perepelitsa aka Mons Anderson
<inthrax на gmail.com> / #99779956
Подробная информация о списке рассылки Moscow-pm