Re[2]: исправление заголовков

Denis F. Latypoff denis на gostats.ru
Чт Ноя 26 14:56:16 MSK 2009


Hello Igor,

Thursday, November 26, 2009, 5:24:57 PM, you wrote:

> On Thu, Nov 26, 2009 at 02:21:01PM +0300, Maxim Dounin wrote:

>> Hello!
>> 
>> On Thu, Nov 26, 2009 at 04:55:38PM +0600, Denis F. Latypoff wrote:
>> 
>> > Hello Igor,
>> > 
>> > Thursday, November 26, 2009, 4:43:29 PM, you 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));
>> > +     return encode('MIME-Header', encode('UTF-8', decode('MIME-Header', $hdr)));
>> 
>> Это не поможет ему производить mime-слова допустимой длины, увы.

> Там длина не особо критична, но это исправление просто кодирует utf-8
> ещё раз utf'ом.


[root at monster ~]# cat r.pl
#!/usr/bin/perl

use Encode qw/encode decode/;

sub repack_utf_hdr($) {
    my($hdr) = shift;
    return encode('MIME-Header', decode('MIME-Header', $hdr));
}

sub repack_utf_hdr_true($) {
    my($hdr) = shift;
    return encode('MIME-Header', encode('UTF-8', decode('MIME-Header', $hdr)));
}

$header = "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?=";

print decode('MIME-Header', repack_utf_hdr_true($header)), "\n";
print decode('MIME-Header', repack_utf_hdr($header)), "\n";
[root at monster ~]# ./r.pl
Subject: Re: Можно ли как-то упростить данную конфигурацию?
Wide character in print at ./r.pl line 20.
Subject: Re: Можно ли как-то упростить данную конфигурацию?

просто encode('MIME-Header', /* здесь ожидает октеты */);

-- 
Best regards,
 Denis                            mailto:denis at gostats.ru




Подробная информация о списке рассылки nginx-ru