Creé un formulario de contacto para mi página web. En los documentos html el charset utf-8 funciona sin problemas, sin embargo, al enviar el formulario con php al servido de correo, el mail llega con fallas en los caracteres en español (acentos, ñ, ...).
Pensé que podía ser que en el archivo enviar.php
(el que realiza la acción de enviar el formulario) no había una declaración de charset, pero no se cómo ponerla, he estado buscando en internet y lo que he encontrado no me ha funcionado.
Probé insertar el código php entre html para declarar meta charset, no funcionó ni con utf-8 ni ISO.
Probé con header ("Content-type: text/html; charset=utf8")
y tampoco funciona.
¿Cuál es la forma correcta de declarar codificación e idioma en php?
Adjunto código de enviar.php
:
<?php
//nombrando campos
$nombre = $_POST['nombre'];
$apellido = $_POST['apellido'];
$email = $_POST['email'];
$telefono = $_POST['telefono'];
$mensaje = $_POST['mensaje'];
//datos para el correo
$destinatario = "contacto@xxxxx.xx";
$asunto = "Contacto Web: Tienes un mensaje de $nombre";
$contenido = "De: $nombre $apellido \n";
$contenido .= "Correo: $email \n";
$contenido .= "Telefono: $telefono \n";
$contenido .= "Mensaje: $mensaje \n";
$contenido .= "¡RECUERDA CONTACTAR AL REMITENTE!";
//enviar Correo
mail($destinatario, $asunto, $contenido);
header('Location:gracias.php');
?>