есть lightsquid, есть пользователи аутен-иеся через AD с русскими логинами (знаю, сам готов убить того, кто это допустил)у lightsquid есть файлик
ip2name.squidauth:
Ребят мучаюсь уже целый день - ну не знаю я перла, помогите плиз
#contributor: esl
#specialy for squid with turned on user authentication
#simple versionsub StartIp2Name() {
}sub Ip2Name($$$) {
# $Lhost,$user,$Ltimestamp
my $Lhost=shift;
my $user =shift;
$user =URLDecode($user); #decode user name
return $user if ($user ne "-");
return $Lhost;
}sub StopIp2Name() {
}#warning !!!
1;В этом файлике нужно сделать преобразование из:
$user = "%d4%c5%cd%d0" - идут именно %-ыполучить при этом
$user = "темп" обязательно в кодировке win1251
сделать это нужно в место этой строчки - это я проверял в течении всего дня ;)
$user =URLDecode($user); #decode user name
как говориться надежда только на знатаков perl
хотелось бы отметить, что lightsquid открываеться по умолчанию в браузере в кодировке windows-1251как видно из исходного кода
<META http-equiv="Content-Type" content="text/html; charset=windows-1251">так вот, если браузеру приказать отображать страницу lightsquid в кодировке koi8-r, то становиться видно имя пользователя (темп), но ведь все остальное то портиться
>хотелось бы отметить, что lightsquid открываеться по умолчанию в браузере в кодировке
>windows-1251Откуда такая оригинальная информация ?
доки читать не пробовали ?
$lang="ru-koi8"; не пробовали ?
:)>
>как видно из исходного кода
><META http-equiv="Content-Type" content="text/html; charset=windows-1251">
>
>так вот, если браузеру приказать отображать страницу lightsquid в кодировке koi8-r, то
>становиться видно имя пользователя (темп), но ведь все остальное то портиться
>
извиняюсь, просто уже запутался методом проб и ошибок ;)>[оверквотинг удален]
>$lang="ru-koi8"; не пробовали ?
>:)
>
>>
>>как видно из исходного кода
>><META http-equiv="Content-Type" content="text/html; charset=windows-1251">
>>
>>так вот, если браузеру приказать отображать страницу lightsquid в кодировке koi8-r, то
>>становиться видно имя пользователя (темп), но ведь все остальное то портиться
>>
>Откуда такая оригинальная информация ?
>доки читать не пробовали ?
>$lang="ru-koi8"; не пробовали ?блин а опера случайно вылетила, поэтому сейчас напишу быстро и мало
в /usr/local/share/doc/lightsquid нечего про lang нет
на сайте в разделе Doc тожеупоминание есть только в конфиг файле, но ru-koi8 - нет ;) :
#language
#see `lang` folder (avaible: bg,eng,fr,hu,it,pt_br,ru,sp)
$lang ="ru";
как предложение добавить в конфиг ru-koi8, т.е. сделать так:
#see `lang` folder (avaible: bg,eng,fr,hu,it,pt_br,ru,ru-koi8,sp)
после :
$lang ="ru-koi8";
Все заработало так, как хотелосьСпасибо.
Строка "%d4%c5%cd%d0" в koi8-r, а не в cp1251
Предполагая, что URLDecode действует соответственно названию перепишите эту строчку так:
use Encode;
$user =encode("cp1251",decode("koi8-r",URLDecode($user))); #decode user name