Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Porque las Ñ y los acentos me salen en ?

Estas en el tema de Porque las Ñ y los acentos me salen en ? en el foro de PHP en Foros del Web. Hola a todos, os adjunto mi enviar.php del formulario de contacto, queria preguntar porque las Ñ y los acentos salen con interrogantes una vez que ...
  #1 (permalink)  
Antiguo 31/05/2013, 07:36
 
Fecha de Ingreso: marzo-2013
Mensajes: 36
Antigüedad: 11 años, 1 mes
Puntos: 0
Porque las Ñ y los acentos me salen en ?

Hola a todos, os adjunto mi enviar.php del formulario de contacto, queria preguntar porque las Ñ y los acentos salen con interrogantes una vez que ha llegado a mi Email, os adjunto el codigo, gracias


Cita:
<meta http-equiv="refresh" content="0;url=http://www.alpaluz.com" />
<?php
$Nombre = $_POST['Nombre'];
$Apellidos = $_POST['Apellidos'];
$Ciudad = $_POST['Ciudad'];
$Provincia = $_POST['Provincia'];
$Email = $_POST['Email'];
$Telefono = $_POST['Telefono'];
$Servicio = $_POST['Servicio'];
$Destinatario = $_POST['Destinatario'];
$texto = $_POST['texto'];

$header = 'From: ' . $Email . " \r\n";
$header .= "X-Mailer: PHP/" . phpversion() . " \r\n";
$header .= "Mime-Version: 1.0 \r\n";
$header .= "Content-Type: text/plain";

$mensaje = "Nombre: " .$Nombre. " \r\n";
$mensaje .= "Apellidos: " .$Apellidos. " \r\n";
$mensaje .= "Ciudad: " .$Ciudad. " \r\n";
$mensaje .= "Provincia: " .$Provincia. " \r\n";
$mensaje .= "Telefono: " .$Telefono. " \r\n";
$mensaje .= "Servicio: " .$Servicio. " \r\n";
$mensaje .= "Destinatario: " .$Destinatario. " \r\n";
$mensaje .= "Mensaje: " .$texto. " \r\n";
$mensaje .= "Enviado el " . date("d/m/y \a \l\a\s H:i:s ");

$para = '[email protected]';
$para2 = '[email protected]';
$asunto = 'Contacto desde Tu Web';

mail($para, $asunto, utf8_decode($mensaje), $header);
mail($para2, $asunto, utf8_decode($mensaje), $header);

echo "Su mensaje a sido enviado correctamente" ;

?>
  #2 (permalink)  
Antiguo 31/05/2013, 07:44
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Porque las Ñ y los acentos me salen en ?

porque no defines charset alguno

de preferencia debe ser el mismo de la DB y/o pagina de origen
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 31/05/2013, 08:01
Avatar de alberto510a  
Fecha de Ingreso: abril-2013
Mensajes: 351
Antigüedad: 11 años
Puntos: 35
Respuesta: Porque las Ñ y los acentos me salen en ?

Claro, casi siempre suelen ponerse así, te dejo algunos ejemplos:

í --> &iacute;
Í --> &Iacute;
ñ --> &ntilde;

Por ejemplo queremos escribir España pues habría que hacerlo así:

Código HTML:
Ver original
  1. Espa&ntilde;a
...y daría la palabra como resultado.

Aquí te dejo una lista:

http://www.thesauruslex.com/typo/eng/enghtml.htm

Saludos!
__________________
No hay preguntas tontas, sino tontos que no preguntan.
  #4 (permalink)  
Antiguo 02/06/2013, 05:47
 
Fecha de Ingreso: marzo-2013
Mensajes: 36
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Porque las Ñ y los acentos me salen en ?

Perdonar mi ignorancia pero como defino charset para lo que quiero??? gracias
  #5 (permalink)  
Antiguo 02/06/2013, 06:27
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Respuesta: Porque las Ñ y los acentos me salen en ?

Por ejemplo así:

Código HTML:
Ver original
  1.   <meta charset="UTF-8">
  2. </head>

En este caso estás indicando uft-8 como codificación.
  #6 (permalink)  
Antiguo 02/06/2013, 12:16
 
Fecha de Ingreso: marzo-2013
Mensajes: 36
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Porque las Ñ y los acentos me salen en ?

He puesto esto y sigue sin funcionar, que hago mal? ayuda

Cita:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<?php
$Nombre = $_POST['Nombre'];
$Apellidos = $_POST['Apellidos'];
$Ciudad = $_POST['Ciudad'];
$Provincia = $_POST['Provincia'];
$Email = $_POST['Email'];
$Telefono = $_POST['Telefono'];
$Servicio = $_POST['Servicio'];
$Destinatario = $_POST['Destinatario'];
$texto = $_POST['texto'];

$header = 'From: ' . $Email . " \r\n";
$header .= "X-Mailer: PHP/" . phpversion() . " \r\n";
$header .= "Mime-Version: 1.0 \r\n";
$header .= "Content-Type: text/plain";

$mensaje = "Nombre: " .$Nombre. " \r\n";
$mensaje .= "Apellidos: " .$Apellidos. " \r\n";
$mensaje .= "Ciudad: " .$Ciudad. " \r\n";
$mensaje .= "Provincia: " .$Provincia. " \r\n";
$mensaje .= "Telefono: " .$Telefono. " \r\n";
$mensaje .= "Servicio: " .$Servicio. " \r\n";
$mensaje .= "Destinatario: " .$Destinatario. " \r\n";
$mensaje .= "Mensaje: " .$texto. " \r\n";
$mensaje .= "Enviado el " . date("d/m/y \a \l\a\s H:i:s ");

$para = '[email protected]';
$para2 = '[email protected]';
$asunto = 'Contacto desde Tu Web';

mail($para, $asunto, utf8_decode($mensaje), $header);
mail($para2, $asunto, utf8_decode($mensaje), $header);

echo "Su mensaje a sido enviado correctamente" ;

?>
  #7 (permalink)  
Antiguo 03/06/2013, 02:36
 
Fecha de Ingreso: marzo-2013
Mensajes: 36
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Porque las Ñ y los acentos me salen en ?

nadie? please
  #8 (permalink)  
Antiguo 03/06/2013, 03:09
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Respuesta: Porque las Ñ y los acentos me salen en ?

¿Y dónde pusiste eso? Tiene que ir en el <head> y este a su vez dentro de <html>, luego el resto en <body>. Tienes que respetar el formato de las cosas.

Y sólo puedes poner un charset. Esto no "a ver cual cuela". Tienes que indicar la codificación que usa el archivo, la misma que usas al guardar el archivo.
  #9 (permalink)  
Antiguo 03/06/2013, 03:25
Avatar de bookmaster  
Fecha de Ingreso: febrero-2002
Ubicación: Toledo
Mensajes: 976
Antigüedad: 22 años, 2 meses
Puntos: 67
Respuesta: Porque las Ñ y los acentos me salen en ?

Función: Mail

Bien en tu caso tienes:
Código PHP:
$header 'From: ' $Email " \r\n";
$header .= "X-Mailer: PHP/" phpversion() . " \r\n";
$header .= "Mime-Version: 1.0 \r\n";
$header .= "Content-Type: text/plain"
Te faltaría:
Código PHP:
$header .= 'Content-type:text/plain; charset=UTF-8' "\r\n"
Y te sobraría estas líneas, ya que solo afectan a la visualización en el navegador y no en el mail.
Código HTML:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head> 
Aparte como bien te han comentado, tendrías que guardar el archivo como utf8 sin bom.
__________________
Decir si te a funcionado la respuesta es ¡GRATIS!. Por favor indicarlo.
http://www.lohacemosweb.net
http://tutoriales.lohacemosweb.net
  #10 (permalink)  
Antiguo 03/06/2013, 07:42
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Porque las Ñ y los acentos me salen en ?

+1 a @bookmaster por encontrar la solución, efectivamente quien debía tener charset es el header del mail, de nada serviría definirlo para el archivo PHP, además sería bueno hacerlo pero para el HTML del mail, obviamente convirtiendo dicho mail en HTML
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #11 (permalink)  
Antiguo 03/06/2013, 08:10
 
Fecha de Ingreso: marzo-2013
Mensajes: 36
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Porque las Ñ y los acentos me salen en ?

Antes de nada gracias por todas vuestras respuestas... pero sigo teniendo el mismo problema ahora el codigo es asi con el charset en $header y guardando con UFT-8 sin boom en Notepad++

Cita:
<meta http-equiv="refresh" content="0;url=http://www.alpaluz.com" />
<?php
$Nombre = $_POST['Nombre'];
$Apellidos = $_POST['Apellidos'];
$Ciudad = $_POST['Ciudad'];
$Provincia = $_POST['Provincia'];
$Email = $_POST['Email'];
$Telefono = $_POST['Telefono'];
$Servicio = $_POST['Servicio'];
$Destinatario = $_POST['Destinatario'];
$texto = $_POST['texto'];

$header = 'From: ' . $Email . " \r\n";
$header .= "X-Mailer: PHP/" . phpversion() . " \r\n";
$header .= "Mime-Version: 1.0 \r\n";
$header .= 'Content-type:text/plain; charset=UTF-8' . "\r\n";

$mensaje = "Nombre: " .$Nombre. " \r\n";
$mensaje .= "Apellidos: " .$Apellidos. " \r\n";
$mensaje .= "Ciudad: " .$Ciudad. " \r\n";
$mensaje .= "Provincia: " .$Provincia. " \r\n";
$mensaje .= "Telefono: " .$Telefono. " \r\n";
$mensaje .= "Servicio: " .$Servicio. " \r\n";
$mensaje .= "Destinatario: " .$Destinatario. " \r\n";
$mensaje .= "Mensaje: " .$texto. " \r\n";
$mensaje .= "Enviado el " . date("d/m/y \a \l\a\s H:i:s ");

$para = '[email protected]';
$para2 = '[email protected]';
$asunto = 'Contacto desde Tu Web';

mail($para, $asunto, utf8_decode($mensaje), $header);
mail($para2, $asunto, utf8_decode($mensaje), $header);

echo "Su mensaje a sido enviado correctamente" ;

?>
  #12 (permalink)  
Antiguo 03/06/2013, 09:20
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Porque las Ñ y los acentos me salen en ?

prueba quitando el utf8_decode o colocando utf8_encode
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #13 (permalink)  
Antiguo 04/06/2013, 04:44
 
Fecha de Ingreso: marzo-2013
Mensajes: 36
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Porque las Ñ y los acentos me salen en ?

un 10 para maycolalvarez y otro para bookmaster, efectivamente el problema en un principio era que el charset debia ser declarado en el header

Cita:
$header .= 'Content-type:text/plain; charset=UTF-8' . "\r\n";
y luego el otro problema era que en vez de:

Cita:
mail($para, $asunto, utf8_decode($mensaje), $header);
mail($para2, $asunto, utf8_decode($mensaje), $header);
Habia que poner:

Cita:
mail($para, $asunto, utf8_encode($mensaje), $header);
mail($para2, $asunto, utf8_encode($mensaje), $header);
Asi que muchisimas gracias

Etiquetas: acentos, formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:57.