исправление заголовков

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