mail непонятный символы в письме

382
27 января 2017, 08:48

При отправке почты получаю в тексте письма :" раÐ! �мещение в информациоÐ �ной системе протоко..." подобное , текст в письмо структурирую с помошью foreach.. то есть беру с массива. Отправляю следующим образом :

$message = "<html><body>";
 $message .= "<h3 style='text-align:center'>Поздравляем bla .</h3>";
 $message .= "<h2 style='text-align:center;'>Ответы</h2>";
    foreach ($err_array as $err => $el) {
         foreach ($el as $item => $val) {
      $message .= '<h4>Вопрос №'. $err .'</h4>';
           $val = htmlentities($errors_to_send[$err]['otvet']);
     $message .= '<h4>'.$my_questions[$err]['quest']. '</h4>';
     $message .= '<p>Правильный ответ:'. htmlentities($my_questions[$err]['answers'][--$val]) .'</p>';
     $message .= '<h5>Комментарий :</h5><p>' . htmlentities($errors_to_send[$err]['comment']) .'</p><hr>';
     }
 }
$messahe .= "</body></html>"
$subject = 'Ответы на тест.';
$headers = "From: admin@bla-bla.ru\r\n";
$headers .= "Reply-To:  admin@bla-bla.ru\r\n";
$headers .= "CC:  admin@bla-bla.ru\r\n";
$headers .= "Content-Type: text/html; charset=UTF-8\r\n";
$headers .= "MIME-Version: 1.0\r\n";
//ISO-8859-1 попробуем явно указать utf-8 
//$headers .= "Content-Type: text/html; charset=utf-8\r\n";
if(mail($_POST["mail"],$subject, $message, $headers)){
    echo "<p>Письмо отправлено на почту </p>".$_POST["mail"];
}else echo "<p>mail to ".$_POST["mail"]." return false.";
Answer 1

Вероятно кодировка вашего скрипта не UTF-8. Используйте функцию mb_internal_encoding в самом начале скрипта с установкой на UTF-8, либо проверьте чтобы PHP файл был в этой кодировке.

Answer 2
encodeURIComponent("Ð �")
"%C3%90%20%EF%BF%BD"
encodeURIComponent("н")
"%D0%BD"

Пробел %20 лишний, последний байт совпадает %BD. %EF%BF смахивает на мусор.

Скорее всего ты где-то разбиваешь строку в UTF8 между байтами (возможно, вставкой этого самого пробела; либо просто где-то происходит считывание не в байтовый буфер, а в строковый с немедленным конвертированием), после чего предпринимается автоматическая попытка восстановить битую строку до читаемого состояния.

READ ALSO
Выдаёт ошибку Notice: Undefined variable:

Выдаёт ошибку Notice: Undefined variable:

Выдаёт ошибку Notice: Undefined variable: dic in /home/v/vladle43/muzikalka-onlaynrf/public_html/all/dictant/class

370
Как удалить public/ из url в laravel 5.4

Как удалить public/ из url в laravel 5.4

Вышла новая версия лары и появились новые проблемыПоставил ее и никак не могу убрать public/ из урла, перечитал уже много статей, старые способы...

706
Невозможно создать форму html [требует правки]

Невозможно создать форму html [требует правки]

Вся суть вопроса в изображенииОбратите внимание на строку 84

302