LINUX.ORG.RU

Перекодировать Subject в koi8-r


0

0

Добрый день!

Я использую procmail для вывода на экран (через osd_cat) сообщений о приходе почты (с определенных адресов). На экран вывожу строки From и Subject.

Строка, с помощь которой "выкусываю" нужный текст: :0 c | formail -xSubject: | expand | sed -e 's/^[ ]*//g' -e 's/[ ]*$//g' > /tmp/OnScreenSubj

... и далее его печатаю, подаю звуковой сигнал и т.д.

Проблема возникает с русскими заголовками вида: Subject: =?koi8-r?Q?PROGGG._7_=DE=C1=D3=D4=C5=CA.?=

Что, в общем, объяснимо. Как их лучше перекодировать? С помощью iconv, выкусив из загововка koi8-r и "влепив" его в строку параметров iconv-a? Или, возможно, есть другой, более простой и правильный путь?

anonymous

Re: Перекодировать Subject в koi8-r

imho - порыть на предмет шрифта для osd_cat или собрать enca и пропускать через неё

sda00 ★★★ ()

Re: Перекодировать Subject в koi8-r

#!/usr/bin/perl -np

use MIME::Base64;
use MIME::QuotedPrint;
use Encode;

BEGIN{ binmode STDOUT, ":locale"; }

s/=\?([^?]+)\?([qbQB])\?([^?]+)\?=/dec_subj($1,$2,$3)/ge;

sub dec_subj
{
	my $cenc = shift;
	my $tenc = shift;
	my $text = shift;

	$tenc = lc($tenc);
	$text = decode_base64($text) if $tenc eq 'b';
	$text = decode_qp($text) if $tenc eq 'q';
	
	return decode($cenc, $text);
}

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.