А не будет ли любезен многоуважаемый джинн Alex Tutubalin описать поведение
$recoder->is_ok? А то из документации
$recoder->is_ok;
Returns 1 if Russian Apache module has successfully
processed current request and undef overwise (f.e.
mod_charset is disabled, or some recoding tables was
not found etc)
и кода
sub is_ok
{
my $self = shift;
return xs_is_ok($self->{request});
}
не очевидно, что в случае CharsetRecodeMultipartForms Off при чарсете клиента
utf-8 она должна возвращать 1, но отказываться recode. Из общих принципов
понятно, что some recoding tables was not found, и отказываться recode она
должна, но должна также и честно отдавать charset'ы, которые явно проверяют
is_ok. Таки в какой ситуации будет не 1?
И я так и не увидел ответа на свой вопрос, заданный мылом (не дошло?), почему
сервер с koi8-r клиенту с windows-1251 в той же самой ситуации в результате
кода
$apr->print('Server charset: '.$recoder->server_charset.'<br>');
$apr->print('Client charset: '.$recoder->client_charset.'<br>');
$apr->print('Имя неперекодированное: '.$apr->param('name').'<br>');
$apr->print('Имя после client2server: '.
$recoder->client2server($apr->param('name')).'<br>');
my $recoded = $recoder->recode($recoder->client_charset,
$recoder->server_charset,$apr->param('name'));
$apr->print('Имя после recode: '.$recoded.'<br>');
выдает
Server charset: koi8-r
Client charset: windows-1251
Имя неперекодированное: цШЦШ
Имя после client2server: цШЦШ
Имя после recode: Гыгы
? Мне казалось, что должен выдавать
Server charset: koi8-r
Client charset: windows-1251
Имя неперекодированное: цШЦШ
Имя после client2server: Гыгы
Имя после recode: Гыгы
Это баг или непонятая мной фича? В случае с utf-8 client2server также выдает
неперекодированный фрагмент.
Server: Apache/1.3.12 (Unix) mod_perl/1.23 rus/PL29.4
--
Artem Chuprina E-mail: ran@ran.pp.ru
Programmer FIDO: 2:5020/371.32
Memonet Ltd. Phone: +7-095-284-1356
=============================================================================
= Apache-Rus@lists.lexa.ru mailing list =
Mail "unsubscribe apache-rus" to majordomo@lists.lexa.ru if you want to quit.
= Archive avaliable at http://www.lexa.ru/mail-archive =
"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.