Доброго времени суток! Вижу, что проблема уже неоднократно поднималась. Впрочем, хочу поднять её ещё раз. На электронную почту пришли кракозябры в духе «Г"âåäîìëÿåì ГўГ Г±, Г·ГІГ® äëÿ ñà éòà "Area com Incerteza"». Виновником вроде как назван почтовый сервис, но, кажется, у меня есть другое объяснение, что это всё-таки баг Топа. Вглядитесь вот в эту строчку: ïðèñëà ГГ Г'ГЊГ' Г± òåêñòîì "Через Робокассу" (расшифровываю: «прислана СМС с текстом "Через Робокассу"»). Левая часть является очень сильно искажённой почтовым сервисом кодировкой Windows-1251, но правая часть — это явно utf-8.
Предполагаемый источник проблемы: почтовый сервис (в моём случае Яндекс) получил письмо в двух кодировках сразу. Он «разглядел» в письме символы из utf-8 в этих двух словах, и решил, что, видимо, всё письмо написано в utf-8, из-за чего и отправил нелепицу. Почтовый клиент же, ссылаясь на «Content-Type: text/plain; charset=Windows-1251», отобразил присланное письмо в win-1251, что сделало нечитабельным ещё и Юникод.
Предлагаемый способ разрешения: убедиться, что в отправляемых письмах кодировка всё-таки одна. Принудительно перекодировать «текст СМС», такой как, например, «Через Робокассу», из utf-8 в win-1251 перед отправкой. Тогда всё письмо будет в кодировке Windows-1251 и почтовый сервер должен обработать письмо правильно. |