Плохая кодификация почтовой формы PHP

64
10

У меня есть контактная форма, и у меня проблемы с кодификацией. Я не знаю, почему, но специальные символы (это испанский) плохо отображаются в полученном сообщении. Я нищий в этом, поэтому я не знаю, где проблема. Моя сеть объявлена в UTF-8, и вот код

<?php
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$from = 'From: web.com';
$to = 'email@email.com';
$subject = 'Formulario contacto web';
$body = "Nombre: $name<br> E-Mail: $email<br> Mensaje:<br> $message";
$headers = "MIME-Version: 1.0" . PHP_EOL;
$headers .= "Content-Type: text/html; charset=utf-8" . PHP_EOL;
$headers .= "From: " . $from . "\n";

if ($_POST['submit']) {
if (mail($to, $subject, $body, $headers)) {
echo '<script type="text/javascript">alert("Su mensaje ha sido enviado");</script>';
} else {
echo '<script type="text/javascript">alert("Algo ha ido mal. Inténtelo de nuevo por favor");</script>';
}
}
?>

спросил(а) 2021-01-26T16:47:00+03:00 4 месяца, 4 недели назад
1
Решение
89

Обновить заголовок;

$headers .= "Content-Type: text/html; charset=utf-8" . PHP_EOL;

в виде

$headers .= 'Content-Type: text/plain; charset=utf-8' . "\r\n";

И состояние utf-8 в заголовке html сообщения, например;

< meta charset="utf-8" />

ответил(а) 2021-01-26T16:47:00+03:00 4 месяца, 4 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема