@anton99zel
29а класс средней школы №7

Как исправить крякозябры в отправляемых письмах?

AddEventHandler("iblock", "OnAfterIBlockElementAdd", Array("OnAfterArticleAdd", "OnAfterIBlockElementAddHandlerLast"));
class OnAfterArticleAdd {
   function OnAfterIBlockElementAddHandlerLast(&$arFields) {
      if ($arFields["IBLOCK_ID"] == 26 && $arFields["RESULT"]>0) {
$message .= 'Свойство 1: '.$arFields['PROPERTY_VALUES']['FIO'];
         mail('test@mail.ru', 'Добавлен отзыв на сайт', $message, $headers);
      }
   }
}

На выходе имеем:
Свойство 1: Антон
т.е. первая часть в нормкодировке, а вторая (та что $arFields['PROPERTY_VALUES']['FIO']) нет.
Как поправить?
  • Вопрос задан
  • 86 просмотров
Пригласить эксперта
Ответы на вопрос 3
sHinE
@sHinE
веб-разработчик, php/js/mysql и сопутствующее
php.net/manual/ru/function.mb-convert-encoding.php
$message .= 'Свойство 1: '.mb_convert_encoding ($arFields['PROPERTY_VALUES']['FIO'],'utf8');

как-то так, со вторым параметром у функции поиграйтесь, возможно там другая кодировка нужна будет.
Ответ написан
Комментировать
Exploding
@Exploding
wtf?
Так сказать, "временно перемотанное скотчем":
$message .= 'Свойство 1: '.iconv("CP1251", "UTF-8", $arFields['PROPERTY_VALUES']['FIO']);

Ну или просто сделайте так, чтобы массив "приходил" не в 1251, а сразу в utf8
Ответ написан
Комментировать
winer
@winer
занимаюсь разработкой сайтов на 1c-bitrix
Уже есть встроенный функционал по работе с почтовыми событиями. Используйте его.
Ссылка
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы