DSPAM WebUI
Оренда сервера. Виділені сервери в Україні та НідерландахОренда сервера
VPS, VDS, Windows VPS - від $10VPS
DSPAM' має одну неприємну особливість. На сторінці “історія” замість теми листа в деяких випадках з'являються кракозябри. Відбувається це тому, що листи надходять у різних кодуваннях і інформація з них заноситься в логи так, без перекодувань. dspam.cgi в свою чергу просто бере інформацію з лога і виводить теж як є. Сьогодні мене ця особливість дістала остаточно, і я вирішив навчити dspam.cgi визначати кодування та перекодувати рядки. Результат викладаю. Помаранчевим для наочності виділено додані чи змінені рядки.
Нам буде потрібно perl'овий модуль Lingua::DetectCyrillic. Встановлюємо:
Тепер редагуємо dspam.cgi.
Тепер у файл default.prefs додаємо параметр webCharset і вказуємо в якому кодуванні ми хочемо отримувати текст на сторінці (наприклад, webCharset=win). Допустимі значення: win, koi, koi8u, mac, iso, dos, utf.
# diff dspam.cgi.bak dspam.cgi 22a23 > use Lingua::DetectCyrillic qw ( &TranslateCyr &toLowerCyr &toUpperCyr ); 408a410,421 > # Added by woland. Encoding detection patch > my %PREFS; > my $to_charset; > my $subj_decoded; > my $from_decoded; > %PREFS = GetPrefs(); > $to_charset = $PREFS; > my $CyrDetector = Lingua::DetectCyrillic ->new(); > my ($Coding,$Language,$CharsProcessed,$Algorithm)= $CyrDetector -> Detect ($ subject); > my $subj_decoded=TranslateCyr($Coding, $to_charset, $subject); > my ($Coding,$Language,$CharsProcessed,$Algorithm)= $CyrDetector -> Detect ($ from); > my$from_decoded=TranslateCyr($Coding, $to_charset, $from); 417,418c430,431
# diff default.prefs.bak default.prefs 8a9 > webCharset=koi
Можливо, це працює, у мене чомусь не хоче…
Після встановлення Lingua::DetectCyrillic щось робити потрібно? Все зробив як написано все те саме... Причому ніяких помилок у логах апача немає... Де ще що подивитися? Що зробити?…
Аааа… зрозумів… він перекодує History… А чого його перекодувати?… воно й так більш-менш нормально відображається….
Більш цікава тема як там же перекодувати “Карантин”… =?koi8-r?B?+uH96fTp8/gg7/Qg7ens6ePl6vPr7+fvICDy4eT… Як ось із цим боротися?
Аааа… Все, зрозумів… “Перекладається” лише “Історія”… А як у “карантині” перекласти рядки типу =?koi8-r?B?+uH96fTp8/gg7/Qg7ens6ePl6vPr7+fvICDy4eT… ? Що із ними можна зробити? А то прочитати це диво неможливо взагалі ...
Я карантин не використовую, відповідно не ставив таку мету.