Ajax y los acentos en PHP y JavaScript

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:

  1. Ajax File Uploader
  2. 10 funciones javascript
  3. Gestión de errores en javascript
  4. Herramientas CSS y Ajax
  5. GassBox – biblioteca javascript
Publicado en: Programación
2 comentarios sobre “Ajax y los acentos en PHP y JavaScript
  1. Oscar Cortes dice:

    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

  2. Anónimo dice:

    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.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

*

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>