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@xxxxxxxxx
Network Administrator FIDO: 2:5020/371.32
PIRIT Corp. Phone: +7(095) 115-7101
=============================================================================
= Apache-Talk@xxxxxxxxxxxxx mailing list =
Mail "unsubscribe apache-talk" to majordomo@xxxxxxxxxxxxx if you want to quit.
= Archive avaliable at http://www.lexa.ru/apache-talk =
"Russian Apache" includes software developed
by the Apache Group for use in the Apache HTTP server project
(http://www.apache.org/) See
Apache LICENSE.
Copyright (C) 1995-2001 The Apache Group. All rights reserved.
Copyright (C) 1996 Dm. Kryukov; Copyright (C)
1997-2009 Alex Tutubalin. Design (C) 1998 Max Smolev.