Как Quoted-Printable Mime-Words должны быть перенесены на правильную длину строки?

Я столкнулся с ошибкой в библиотеке синтаксического анализа пантомимы, когда она взрывается в строках темы, содержащих иностранные символы за пределами определенной длины. Оказывается, это преобразует тему в MIME с кавычками "Encoded-Word", а затем попробуйте перенести все это на 78 символов. Поскольку кодировка MIME-Word не содержит пробелов (они заменены символами подчеркивания), перенос невозможен.

Пример переноса строки:

Subject: =?UTF-8?Q?lalalla_=E7=84=A1=E6=AD=A4=E7=84=A1=E6=AD=A4=E9=A0=85=E7=9B=AE=AE=AE=AE=AE=AE=AE=AE=AE?=

Я подумал, что мог бы внести патч в библиотеку для правильного переноса строки, но я не смог найти ссылку на то, как разбить MIME-Word как часть алгоритма переноса слов.

RFC 5322 говорит о переносе слов через пробелы, но не предоставляет какие-либо рекомендации о том, что делать, если есть строка символов без пробелов, превышающая целевую ширину.

Кто-нибудь знает, как правильно действовать здесь?


person Dobes Vandermeer    schedule 15.11.2011    source источник


Ответы (1)


Просто разделите строку там, где вам нужно, и продолжайте со второй строкой с переносом. Например:

Subject: =?UTF-8?Q?lalalla_=E7=84=A1=E6=AD=A4=E7=84=A1=E6=AD=A4?=
 =?UTF-8?Q?=E9=A0=85=E7=9B=AE=AE=AE=AE=AE=AE=AE=AE=AE?=

Просто убедитесь, что вторая (и последующие) строки начинаются либо с пробела, либо с табуляции.

hth,
--Дэйв

person dave wanta    schedule 15.11.2011
comment
Итак, похоже, что вы делаете декодирование Mime-Word, затем выполняете какое-то разделение/перенос слов и перекодируете его? Или, возможно, обнаружение разделения мим-слова на произвольную четную тройку и прилипание \r\n\t=?UTF-8?Q? в качестве разделителя? - person Dobes Vandermeer; 16.11.2011
comment
вы должны быть в состоянии разделить линию в любом месте. Просто убедитесь, что вы правильно начинаете и заканчиваете линию. - person dave wanta; 07.12.2011