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