Cuando devolvemos un resultado, para imprimir en pantalla, mediante Ajax, si la cadena que tenemos que mostrar tiene acentos o eñes (“ñ”), se nos muestran unos carácteres raros en vez de mostrar los acentos.
Ejemplo:
frase original: El peliculón
frase en ajax: El pelicul?
El problema es por el juego de carácteres que se utiliza por defecto para enviar texto desde el servidor.
Para solucionar esto desde PHP o ASP hay que poner lo siguiente en la cabecera de la página:
ASP:
Response.AddHeader “Content-Type”, “text/html; charset=iso-8859-1”
PHP:
header(“Content-Type: text/html; charset=iso-8859-1”);
Otra solución desde PHP es devolver la cadena utilizando htmlentities();
var $texto= “El peliculón”;
htmlentities($texto);
Otra solución, pero desde el lado de Javascript es la siguiente:
Desde PHP devolvemos la cadena de la siguiente forma:
var $texto= “El peliculón”;
urlencode($texto);
Desde javascript decodificamos de la siguiente forma:
var resultado = ajax.responseText; // Texto retornado
resultado = resultado.replace(/\+/g,” “); // Substituimos por un espacio.
resultado = unescape(resultado); // Deshacer lo que hizo la función urlencode();.
Entradas relacionadas:
Gracias por tu ayuda, yo usaba en utf8_decode, pero pues aqui en windows creo no me configuraron esa libreria asi que use htmlentities y si funciona bien, gracias
Por Dios!, gracias!!!!, no tenes idea del dolor de cabeza que me dan los acentos!. No se porque mier… en todos lados dicen que hay que poner UTF-8. Gracias.