ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 

  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА














     АРХИВ :: Apache-Talk
Apache-Talk mailing list archive (apache-talk@lists.lexa.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [apache-talk] encoding URL: localized version needed (fwd)



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                 =



 




Copyright © Lexa Software, 1996-2009.