хотите преобразовать следующую необработанную почту в обычный текст UTF-8:
=? Utf-8? Q? Schuker_hat_sich_vom_ = C3 = 9Cbungsabend_ (01.01.2012) _abgem? = =? Utf-8? Q? Eldet? =
Реальный текст для этого:
Schuker hat sich vom Übungsabend (01.01.2012) abgemeldet
Мой первый подход к преобразованию этого:
$mime = '=?utf-8?Q?Schuker_hat_sich_vom_=C3=9Cbungsabend_(01.01.2012)_abgem?= =?utf-8?Q?eldet?=';
mb_internal_encoding("UTF-8");
echo mb_decode_mimeheader($mime);
Это дает мне следующий результат:
Schuker_hat_sich_vom_Übungsabend_ (01.01.2012) _abgemeldet
(Здесь вопросы: что я делаю не так? Почему возникают эти подчеркивания?)
Мой второй подход к конвертации:
$mime = '=?utf-8?Q?Schuker_hat_sich_vom_=C3=9Cbungsabend_(01.01.2012)_abgem?= =?utf-8?Q?eldet?=';
echo imap_utf8($mime);
Это дает мне следующий (правильный) результат:
Schuker hat sich vom Übungsabend (01.01.2012) abgemeldet
Почему это работает? На какой метод мне следует положиться?
Причина, по которой я спрашиваю, состоит в том, что я ранее задал еще один вопрос, связанный с расшифровкой почтовой темы , где mb_decode_mimeheader
было решением, тогда как здесь imap_utf8
будет подходящим способом. Как я могу гарантировать, что декодировать все правильно для этих обоих примеров:
=? Utf-8? Q? Schuker_hat_sich_vom_ = C3 = 9Cbungsabend_ (01.01.2012) _abgem? = =? Utf-8? Q? Eldet?
и
* * = Тысяча сорок-семь? UTF-8? B? UmU6ICMyLUZpbmFsIEFjY2VwdGFuY2UgdGVzdCB3aXRoIG5ldyB0ZXh0IHdpdGggU2xvdg ==? =
=? UTF-8? B? YWsgaW50ZXJwdW5jdGlvbnMgIivEvsWhxI3FpcW + w73DocOtw6khxYgi? =
Должен дать мне ожидаемые результаты:
Schuker hat sich vom Übungsabend (01.01.2012) abgemeldet
и
Re: # 2-Финальный приемочный тест с новым текстом со словацкими символами "+ ľščťžýáíé! Ň"