Re: добавим офтопега
> my $wd = MIME::WordDecoder->new([
> 'US-ASCII' => sub { $_[0] },
> 'KOI8-R' => sub { $_[0] },
> 'WINDOWS-1251' => \&fromwin,
> 'CP1251' => \&fromwin,
> 'UTF8' => \&fromutf8,
> 'UTF-8' => \&fromutf8,
> '*' => sub { $_[0] },
> ]);
порывшись нашел таки нужный модуль и вот что получилось:
use Encode;
use MIME::Words;
sub decode_header($$)
{
my ($header, $charset)=@_;
return unless defined $header;
$charset='utf-8' unless defined $charset;
my @hdrs=MIME::Words::decode_mimewords($header);
$header='';
for (@hdrs)
{
if (defined $$_[1])
{
$header.=decode($$_[1], $$_[0], Encode::FB_WARN);
}
else
{
$header.=$$_[0];
}
}
return encode($charset, $header, Encode::FB_WARN);
}
в принципе тот же алгоритм, что выше описан, но с завязкой на
стандартные либы :)
Reply to: