Тут вот столкнулись с такой проблемой:
С некоей штуки на швабропоинтах идет рассылка писем. Тема, естественно, на русском. Швабропоинт использует Q-P для подачи в заголовок и получаем такую шнягу:
=?utf-8?Q?blablabla...
Поскольку тема слишком длинная, в соответствии со стандартом подаваемое в заголовок режется на куски не более 76 символов на строку. Местами получается между двумя байтами одной utf-8 буквы «мягкий разрыв строки». Беглый поиск по интернетам показал, что найти клиент, который не трактует «мягкий разрыв строки» как разрыв кода символа, - есть лотерея. Причем разные версии одних и тех же почтарей участвуют в розыгрыше независимо.
Наткнулся на такой вот опус. Вкратце: некто утверждает, что «дух стандарта говорит о том, что многобайтовые последовательности кодов символов разрываться между строками в Q-P не должны».
Из того, что видено и опробовано:
- большинство почтарей (в первую очередь тестировались версии MS Осторожно! 2003-2013) для подачи в MIME Encoder преобразуют по умолчанию русскоязычный текст в koi8-r (хитрожопые, скоты) - гмыло, кстати, тоже хитрожопит - зимбра послала всё лесом, и использует utf-8 под соусом b64
Так вот, скажи, глобальный разум, правильно ли я понял кусок стандарта, что b64 при любых разрывах самой последовательности b64, в восстановленном варианте гарантирует целостность (в отличие от Q-P)? И вообще, может, где-то проглядел в куске 2045 про Quoted-Printable, где говорится о том, что soft linebreak MUST NOT трактоваться, как разрыв последовательности любого вида, закодированной этим Q-P?