Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Artem Chuprina                       2:5020/400     16 Mar 2007  18:52:45
 To : Eddie L.Verkhoturov
 Subject : Re: email attachment
 -------------------------------------------------------------------------------- 
 
 Eddie L.Verkhoturov -> Artem Chuprina  @ Fri, 16 Mar 2007 12:53:00 +0000 (UTC):
 
  >> > EL> Требуется перекодировать имена файлов-вложений email-ов из
  >> > EL> кирилических в транслит. Может быть кто-либо сталкивался со схожей
  >> > EL> задачей? Подскажите, пожалуйста, в каком направлении рыть (имена
  >> > EL> модулей, возможно кусочки кода, или быть существуют утилиты с таким
  >> > EL> функционалом).
  >> > Дело в том, что имена файлов в аттачах кодируют кто во что горазд.  И
  >> > хорошо еще, если используют для этого _не тот_ стандарт (там есть
  >> > некоторая путаница), но все-таки стандарт...
  EL> Ммм... как вкусно... ууу... как больно!  Однако решение должно же
  EL> быть, ведь всякие outlook-и, thunderbitd-ы все ж таки (наверное по
  EL> большей части) распутывают все эти вавилонские чудеса?
 
 Реже, чем через раз.  Hу, сам с собой он обычно совместим...
 
  >> > Давай так.  Ты показываешь надыбанные заголовки аттачей, а мы пытаемся
  >> > угадать, есть ли модуль для этого варианта, и по какому признаку надо
  >> > использовать именно его  :-) 
 
  EL> Вот, парочку надыбал:
  EL> ====
  EL> Content-Type: application/msword;
  EL>  name="=?windows-1251?Q?=B9_=C8=C0-9=40_=EE=F2_16=2E03=2E2007=2Edoc?="
  EL> Content-transfer-encoding: base64
  EL> Content-Disposition: attachment;
  EL>  filename="=?windows-1251?Q?=B9_=C8=C0-9=40_=EE=F2_16=2E03=2E2007=2Edoc?="
 
  EL> ====> Вот таки вот длиннючие имена файлов тоже бывают
  EL> Content-Type: application/msword;
  EL>        
  EL> name="=?koi8-r?B?9dDSwdfMxc7Jxc0gzdXOycPJ0MHM2M7Px88gyc3V3cXT1NfBIMHEzQ==?=
  EL>        
  EL> =?koi8-r?B?yc7J09TSwcPJySDHz9LPxMEgIOzJ187ZIMLZzCDQ0snPwtLF1MXOIA==?=      
  EL> =?koi8-r?B?1SDm5/XwIObr4y5kb2M=?=" Content-Transfer-Encoding:
  EL> base64 Content-Disposition: attachment;       
  EL> filename="=?koi8-r?B?9dDSwdfMxc7Jxc0gzdXOycPJ0MHM2M7Px88gyc3V3cXT1NfBIMHEzQ
  EL> ==?=       
  EL> =?koi8-r?B?yc7J09TSwcPJySDHz9LPxMEgIOzJ187ZIMLZzCDQ0snPwtLF1MXOIA==?=      
  EL> =?koi8-r?B?1SDm5/XwIObr4y5kb2M=?="
 
 Это (оба комплекта) аутлуковское нарушение.  Используется стандарт, по
 счастью, но не тот.  Это RFC 2047, и лечится модулем MIME::Words.
 Признак -
 
 /^\s*=\?([^?]*)\?[BQ]\?/
 
 Там еще в конце обязательно \?=, которое регулярно ломается.  Hо это уже
 пусть MIME::Words ругается "что за фигню подсунули".  То, что в
 регулярном выражении в круглых скобочках, т.е. после успеха сравнения
 будет в $1 (а в самом параметре - между первым и вторым вопросительными
 знаками) - кодировка того, что выдаст MIME::Words.  Она тебе понадобится
 для правильной перекодировки.
 
 Подсовывать, скорее всего, надо все значение параметра целиком.  Все
 несколько строчек, что между кавычками.  Сами кавычки - не надо.
 
  EL> PS: А вообще, хоть меня и достали такие имена в почтовых файлах от
  EL> юзеров (воспитать их нет никакой возможности), но проблема еще
  EL> кроме того из-за того, что у меня письма, с такими вложениями в
  EL> otrs укладываются с кракозябрами. Ага, разработчику написал, однако
  EL> молчат. А я не настолько силен в perl, чтобы разобраться в чем там
  EL> кроется проблема, вот и решил по-быстрому сваять некую нашлепку,
  EL> чтоб значит транслитом ударить по бездорожью. Hеужто по-быстрому не
  EL> получится?
 
 В транслит тебе, скорее всего, штатный Encode переведет.  Если нет - тут
 есть знатоки этих перекодировок получше меня.  А вот раскодировать...
 
 Да, надо помнить, что в раскодированных именах будут пробелы.  В тех
 примерах, где кодирование Q, их даже видно (это то, что _).  И
 перекодировка в транслит их, если что, оставит где были.
 
 -- 
 Artem Chuprina
 RFC2822: <ran{}ran.pp.ru> Jabber: ran@jabber.ran.pp.ru
 
 Все события вымышлены, после чего искажены.
   <lj user=mcdowns>
 --- ifmail v.2.15dev5.3
  * Origin: Leninsky 45 home network (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 email attachment   Eddie L.Verkhoturov   16 Mar 2007 13:50:42 
 Re: email attachment   Artem Chuprina   16 Mar 2007 15:24:47 
 Re: email attachment   Eddie L.Verkhoturov   16 Mar 2007 16:53:00 
 Re: email attachment   Artem Chuprina   16 Mar 2007 18:52:45 
Архивное /ru.perl/25606e97b2171.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional