Comunidad de diseño web y desarrollo en internet online

problema con ñ y acentos

Citar            
MensajeEscrito el 08 Sep 2010 08:48 pm
para mostrar bien lo q sucede aqui esta esta imagen veanla para q sepan lo que quiero hacer sobre todo la parte que indica la flecha que alli es donde esta el problema no al abrir el mensaje





tengo mi formulario para enviar un correo
lo valide
y funciona bien
el envia las ñÑ y acentos todo bien pero
cuando el correo llega en el nombre de quien lo esta enviando no salen las ñÑ y acentos, pero si salen si abro el correo, y tambien si al reenviar y al leer los datos del correo en el buzon!
vean la imagen donde señala especificamente la flecha alli es donde no me muestra los caracteres especiales!!!!

y este es una parte del codigo que uso

Código PHP :

<?php
}else{
//Estoy recibiendo el formulario, compongo el cuerpo
$headers_mensaje = "From:" . $_POST["nombre"] ." ". $_POST["apellido"] . "\r\n.." . "Reply-To:". $_POST["email"] ."\r\n" . "Return-path: ". $_POST["email"] ."\r\n" . "MIME-Version: 1.0\n" . "Content-type: text/plain; charset=utf-8";

$cuerpo = "Enviado de la pagina web www.dieseltronic.com.ve\n";
$cuerpo .= "Nombre: " . $_POST["nombre"] . "\n";
$cuerpo .= "Apellido: " . $_POST["apellido"] . "\n";
$cuerpo .= "Email: " . $_POST["email"] . "\n";
$cuerpo .= "Mensaje: " . $_POST["coment"] . "\n";

//mando el correo...
mail("[email protected]","Respuesta de jjjjjjjjjj.com.ve",$cuerpo, $headers_mensaje);



alguien me paso esta funcion para q lo solucionara
pero yo la coloque y no me funciono

Código PHP :

function fixEncoding($in_str){
$cur_encoding = mb_detect_encoding($in_str) ;
if($cur_encoding == "UTF-8" && mb_check_encoding($in_str,"UTF-8"))
return $in_str;
else
return utf8_encode($in_str);
};


la llame de esta manera en el codigo q tengo arriba en mi codigo

Código PHP :

mail("[email protected]","Respuesta de jjjjjjjjjj.com.ve",$cuerpo, fixEncoding($headers_mensaje));



/////////////////////////////////////////////////////////////////////////////////////////////////////
yo estoy usando jquery para q me valide los campos

esto es lo que corresponde a un archivo de jquery que tengo q me valida y funciona

Código PHP :

"onlyLetter":{
"regex":"/^[a-zA-Z \ \u00E1\u00f1\u00d1\u00e9\u00ed\u00f3\u00fa\u00c1\u 00c9\u00cd\u00d3\u00da\]+$/i",
"alertText":"* Solo letras"},




luego en el formulario lleno por ejemplo
nombre: toño
apellido: vañes
email:[email protected]
mensaje:asdjajasfas


entonces lo envio y reviso mi correo para ver como llego
y deberia llegar
de quien esta mandandolo

pero llega
toño vañes

y al abrirlo si dice toño bañes y todas las ñ y acentos t todo lo q le haya colocado
pero lo que quiero es q en la bandeja salga el nombre bien del q lo envio
en la bandeja pero sin haberlo abierto
osea donde uno ve todos los nombres de los que mandaron el correo

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox
Citar            
MensajeEscrito el 11 Sep 2010 08:14 pm
Borrá el código que te mandaron y no funciona y codificá así:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

Si aún así no funciona escribime a este e-mail:

[email protected]

Claudio

Por Ishkandar

Claber

303 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 15 Sep 2010 07:48 am
me funciono lo que dijistes colocando <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> pero ahora tengo otro problema jejeje ahora donde sale la flecha en la imagen esta perfecto pero al abrir el mensaje en la bandeja no! ahora se invirtio el problema! por que? que puede ser ahora?

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox
Citar            
MensajeEscrito el 15 Sep 2010 08:53 am
jeje eso mismo me paso hace unos meses, no tienes porque borrar tu codigo anterior lo tienes que cambiarlo un poco pero antes, la explicación del porque^^:

El problema viene por que la tabla de codificación de caracteres que utilizan los agentes de correo sigue siendo en la mayoria de los casos la ISO-8859-1 en lugar de la UTF-8 de Unicode para los campos que no son el cuerpo del mensaje (aunque no lo has observado con el campo Asunto tb pasa).

Entonces una forma rapida de solucionar este problema es pasar la cadena de caracteres de estos campos a ISO-8859-1, esto lo puedes conseguir con la funcion utf8_decode($nombre_del_campo)

En tu caso seria:
mail (utf8_decode("[email protected]"), utf8_decode("Respuesta de jjjjjjjjjj.com.ve"), $cuerpo, utf8_decode($headers_mensaje));

De esta forma no te deberia dar problemas, la funcion fixEncode te la puedes saltar puesto que ya no hace falta el checkeo aunque si la quieres seguir usando supongo que solo tendras que cambiar la linea del return por esta:

return utf8_decode($in_str);

Con esto deberia funcionar, espero que lo consigas^^

Por noctam

Claber

197 de clabLevel



 

firefox
Citar            
MensajeEscrito el 15 Sep 2010 08:56 am
Antes de la línea del botón Enviar (Submit) codificá el envío de la misma forma. Debe quedar así:

Código HTML :

<input name="charset" type="hidden" value="iso-8859-1" />
<input name="botao" id="botao" type="submit" value="Enviar">

Por Ishkandar

Claber

303 de clabLevel



Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.