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

Maxim Dounin mdounin на mdounin.ru
Чт Ноя 26 15:11:51 MSK 2009


Hello!

On Thu, Nov 26, 2009 at 05:33:05PM +0600, Denis F. Latypoff wrote:

> Hello Maxim,
> 
> Thursday, November 26, 2009, 5:21:01 PM, you 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-слова допустимой длины, увы.
> 
> Это как?

Это RFC 2047, "2. Syntax of encoded-words":

...

   An 'encoded-word' may not be more than 75 characters long, including
   'charset', 'encoding', 'encoded-text', and delimiters.  If it is
   desirable to encode more text than will fit in an 'encoded-word' of
   75 characters, multiple 'encoded-word's (separated by CRLF SPACE) may
   be used.

...

Кроме того, есть ещё RFC 5322, "2.1.1.  Line Length Limits":

   There are two limits that this specification places on the number of
   characters in a line.  Each line of characters MUST be no more than
   998 characters, and SHOULD be no more than 78 characters, excluding
   the CRLF.

Т.е. 75 символов на encoded-word - это больше, чем рекомендуется 
использовать в первой строке (ибо вместе с названием заголовка - 
вылезет за 78 символов).  Но это уже красивости по большому счёту, 
а вот превышать лимит в 75 символов на encoded-word - чревато 
боком (e.g. pine такие encoded-words просто не раскодирует).

Maxim Dounin



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