Coloca en el archivo PHP y el HTML de las paginas que tienen que ver con el envio del formulario esto.
Content type HTML
Pon en el <head> de todos los archivos HTML:
Código PHP:
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
Content type PHP
Y en los puramente PHP (que muestran XML, llamadas de AJAX, APIs…) pon el código:
Código PHP:
header("Content-Type: text/html;charset=utf-8");
Una vez hecho eso borra los decode y encode que colocaste en este codigo:
Código PHP:
<?php
if($_POST["nombre"] && $_POST["email"] && $_POST["comentario"] != ""){
$de = $_POST["nombre"];
$destino = "[email protected]";
$asunto = "FORMULARIO NUEVO";
$mensaje .= "FORMULARIO NUEVO."."\n";
$mensaje .= "\n";
$mensaje .= "NOMBRE: " . utf8_decode($_POST["nombre"]) ."\n";
$mensaje .= "\n";
$mensaje .= "EMAIL: " . utf8_decode($_POST["email"]) ."\n";
$mensaje .= "\n";
$mensaje .= "ASUNTO: " . utf8_decode($_POST["asunto"]) ."\n";
$mensaje .= "\n";
$mensaje .= "COMENTARIO: " . utf8_decode($_POST["comentario"]) ."\n";
$emailheader = "From: LO QUE TU QUIERAS <[email protected]>\r\n";
mail($destino, $asunto, $mensaje, $emailheader) or die ("Lo sentimos, tu solicitud no ha sido enviada.<br/>Intentelo de nuevo.");
} else {
if($_POST["nombre"] == ""){
echo utf8_encode ('Por favor, indica tu nombre.');
exit; }
if($_POST["email"] == ""){
echo utf8_encode ('Por favor, indica un email de contacto.');
exit; }
if($_POST["comentario"] == ""){
echo utf8_encode ('Por favor, indicanos tu comentario.');
exit; }
}
?>
Ya no es necesario decodificar o codificar puesto que estas aclarando en ambos archivos el charset indicado.
Prueba aquello y nos cuentas, espero puedas resolverlo.
Saludos.