проблемы с аутентификацией на русском через POST. такой код:
push @{ $browser->requests_redirectable }, 'POST';
my $response = $browser->post( $url,
[
'action' => 'login',
'login' => $login,
'pwd' => $pass,
]);если $login на английском, то все работат нормально, но если на руском, не пускает :(
это как-нибудь лечиться?
>проблемы с аутентификацией на русском через POST. такой код:
>push @{ $browser->requests_redirectable }, 'POST';
>my $response = $browser->post( $url,
>[
> 'action' => 'login',
> 'login' => $login,
> 'pwd' => $pass,
>]);
>
>если $login на английском, то все работат нормально, но если на руском,
>не пускает :(
>это как-нибудь лечиться?
конечно лечится. Вы бы хоть со стандартами ознакомились... Экранировать надо русские буквы.
знак процента "%" и код символа надо вместо букв передавать
>конечно лечится. Вы бы хоть со стандартами ознакомились... Экранировать надо русские буквы.
>
>знак процента "%" и код символа надо вместо букв передаватьа это как-нибудь связано с кодировками на сервере?
есть разница юникод там или кои8?просто я сделал так, как вы сказали, он все равно не пускает.
а когда подредактировал скрипт в кодировке utf8 (без экранизации)все заработало :(
sub StrEscaped {
my ($str)=@_;
$str=~s/([^0-9A-Za-z\?&=:;])/sprintf("%%%x", ord($1))/eg;
return $str
}