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]

Re: [apache-rus] perl interface to russian apache



In <Pine.LNX.4.03.9810261154420.3413-100000@brass.fe.msk.ru> Victor B Wagner (vitus@ice.ru) wrote:
VW> On Fri, 23 Oct 1998, Alex Tutubalin/Apache-RUS team wrote:

>> Привет,
>>
>> у меня кризис жанра - никак не могу решить, какое Perl API будет хорошим.
>>
>> Сойдет ли такое:
>> use Apache::Charset;
>> my $recoder = new Apache::Charset;
>> print  "mod_charset is turned off or not configured" unless $recoder->is_ok;
>> print $recoder->server_charset;

VW> А что сделать перекодировщик с явным указанием to и from сharset
VW> мешает что-то в существующем русском апаче?

VW> На мой взгляд возможность использования не тех кодировок которые указаны
VW> в environment является одной из самых нужных вещей в API.

Угу. Например если нужно общаться в скрипте с базой, которая хранит все в
windows-1251 (так пользователям базы удобнее), а сам скрипт, естественно,
оперирует с koi8-r... Конечно два перекодирования -- это лишние накладные
расходы, но по сравнению с "ценой" запроса к базе это ерунда...

VW> Например, делаешь скрипт с CharsetDisable On
VW> и пишешь в нем:

VW> for $charset ($recoder->charsets) {
VW>    print $recoder->recode($ENV{'CHARSET_SOURCE_ENC'},$charset,
VW>        "<A HREF=\"/$charset/$ENV{'SCRIPT_URL'}\">".
VW>        "Если вы
VW> можете прочитать это, то вам сюда</a><br>");
VW> ]

За такие скрипты морду бить нужно. Ибо в правильно настроенном browser'е НИ ОДНА
из этих строк читаться НЕ ДОЛЖНА ибо все должно показываться в Latin-1 AKA
ISO-8859-1 ...

>> print $recoder->client_charset;
>> $scalar = $recoder->server2client($some_scalar);
>> $scalar = $recoder->client2server($some_scalar);
>> $scalar = $recoder->server2client_esc($some_scalar);# returns %aa-escaped string
VW> А вот это - типичное "Выкрасить и выбросить"
VW> Если, конечно, в C-шном
VW> коде такая функция уже есть, то грех не воспользоваться.
VW> Но тогда стоило бы и обратную функцию завести.

>> @charsets=$recoder->charsets; # returns lists of charsets, known by server
VW> А
VW> @aliases=$recoder->aliases($charset) ?

VW> Еще стоит позаботиться о том, чтобы recoder можно было унаследовать.
VW> Я тогда сразу же допишу в него чисто перловую перекодировку из Utf-8.

Вот это полезная идея...








Спонсоры сайта:

[ 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.