исправление заголовков
Maxim Dounin
mdounin на mdounin.ru
Чт Ноя 26 16:00:10 MSK 2009
Hello!
On Thu, Nov 26, 2009 at 02:34:06PM +0300, Igor Sysoev wrote:
> On Thu, Nov 26, 2009 at 02:01:56PM +0300, Maxim Dounin wrote:
>
> > Hello!
> >
> > On Thu, Nov 26, 2009 at 01:43:29PM +0300, Igor Sysoev wrote:
> >
> > > Может кто-нибудь подсказать, что из перлового многообразия модулей
> > > умеет корректно преобразовывать заголовки ?
> > >
> > > Вот это:
> > >
> > > # $Id: Encode.pm,v 2.35 2009/07/13 00:49:38 dankogai Exp $
> > > use Encode qw/encode decode/;
> > >
> > > sub repack_utf_hdr($) {
> > > my($hdr) = shift;
> > >
> > > return encode('MIME-Header', decode('MIME-Header', $hdr));
> > > }
> > >
> > > Делает из такого
> > >
> > > Subject: Re: =?KOI8-R?Q?=ED=CF=D6=CE=CF_=CC=C9_=CB=C1=CB-=D4=CF_=D5?=
> > > =?KOI8-R?Q?=D0=D2=CF=D3=D4=C9=D4=D8_=C4=C1=CE=CE=D5=C0_=CB=CF=CE=C6=C9?=
> > > =?KOI8-R?Q?=C7=D5=D2=C1=C3=C9=C0=3F?=
> > >
> > > вот такое:
> > >
> > > Subject: Re:
> > > =?UTF-8?B?INCc0L7QttC90L4g0LvQuCDQutCw0Lot0YLQviDRg9C/0YDQvtGB0YLQuNGC0Y
> > > w=?=
> > > =?UTF-8?B?INC00LDQvdC90YPRjiDQutC+0L3RhNC40LPRg9GA0LDRhtC40Y4=?=?
> > >
> > > В конце вопрос не отделён пробелом (а ещё лучше засунуть его в закодированое).
> > > Результат можно наблюдать здесь:
> > > http://nginx.org/pipermail/nginx-ru/2009-November/030058.html
> >
> > MIME::EncWords пожалуй наиболее приличен из всего что есть на
> > текущий момент.
>
> А готовый скрипт может кто-нибудь дать, а то там даже в man'е ошибки:
>
> foreach (decode_mimewords($enc)) {
> - print "", ($_[1] || 'US-ASCII'), ": ", $_[0], "\n";
> + print "", ($_->[1] || 'US-ASCII'), ": ", $_->[0], "\n";
> }
Если я правильно понимаю чего ты хочешь добиться - то как-то так:
return encode_mimewords(
scalar decode_mimewords($hdr, Charset => 'utf-8'),
Charset => 'utf-8'
);
Maxim Dounin
Подробная информация о списке рассылки nginx-ru