On Tue, 20 Jul 1999, Dmitry Morozovsky wrote:
> В CGI.pm имеем функцию
>
> # URL-encode data
> sub escape {
> shift() if ref($_[0]) || $_[0] eq $DefaultClass;
> my $toencode = shift;
> return undef unless defined($toencode);
> $toencode=~s/ /+/g;
> $toencode=~s/([^a-zA-Z0-9_.+-])/uc sprintf("%%%02x",ord($1))/eg;
> return $toencode;
> }
>
> Беда в том, что она эскейпит все русские буквы, посему перестает работать
> перекодировка (при посылке параметров к скрипту, например).
>
> Попытки переделать предпоследнюю строку в
> s/([^\w_.+-])/uc ...
> ...ничего в ситуации не меняют. Попытка использовать POSIX qw(locale_h) --
> ничего не меняет. Где грабли?
А если вместо use POSIX qw(locale_h) сказать use locale? Я вот только что
проверил:
$ perl -le 'use POSIX qw(locale_h); $_ = "ю"; s/\w/./; print'
ю
$ perl -le 'use locale; $_ = "ю"; s/\w/./; print'
.
--
Artem Chuprina E-mail: ran@pirit.com
Network Administrator FIDO: 2:5020/371.32
PIRIT Corp. Phone: +7(095) 115-7101
=============================================================================
= Apache-Talk@lists.lexa.ru mailing list =
Mail "unsubscribe apache-talk" to majordomo@lists.lexa.ru if you want to quit.
= Archive avaliable at http://www.lexa.ru/apache-talk =