[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