Russian Apache Switch to English
Switch to Russian koi8-r
windows=1251
cp-866
iso8859-5
Russian Apache Как это работает Рекоммендации Где взять Как установить Как настроить Статус и поддержка
Краткий обзор FAQ Список рассылки Благодарности Поиск по серверу Powered by Russian Apache
Russian Apache mailing list archive (apache-rus@lists.lexa.ru)

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

[apache-rus] Apache::Charset



А не будет ли любезен многоуважаемый джинн 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 ] [ Как это работает ] [ Рекомендации ] [ Где взять ] [ Как установить ] [ Как настроить ] [ Статус и поддержка ] [ Краткий обзор ] [ FAQ ] [ Список рассылки ] [ Благодарности ] [ Поиск по серверу ] [ Powered by Russian Apache ] [ Apache-talk 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.