Tip Para Solucionar Problema con Acentos al Utilizar AJAX

Tips AJAXSi utilizas AJAX en tu sitio y el charset que utilizas es ISO-8859-1 habras notado que cuando recibes un responseText con acentos o ñ te muestra simbolos raros, esto es debido a que los request de AJAX utilizan la codificación UTF-8. Para solucionar esto debemos indicarle a la respuesta en AJAX que utilice el charset es ISO-8859-1 para esto en PHP utilizamos la función header();

Ejemplos:

Para devolver HTML

  1. header("Content-Type: text/html; charset=iso-8859-1");

Para devolver Javascript

  1. header("Content-type: text/javascript; charset=iso-8859-1");

Para devolver XML

  1. header(‘Content-type: text/xml;  charset=iso-8859-1′);
  2. echo "<?xml version="1.0" encoding="ISO-8859-1"?>\n";

Con eso solucionamos el problema de los acentos en la respuesta de AJAX.Ahora también existe el problema al momento de enviar los datos de un formulario mediante AJAX ya que también se envían codificados en UTF-8 por lo que al guardarlo en la base de datos observaremos que se guardan símbolos raros. Para solucionar esto utilizamos la función utf8_decode de php.

Por ejemplo:

  1. $variable = utf8_decode($_POST[‘variable’]); //Y asi para todas las variables que podrían contener acentos o ñ

Para ahorrarnos el trabajo de hacerlo variable por variable pueden implementar la siguiente función:

  1. function decodeUTF8($array) {
  2.  
  3.         foreach ($array as $k => $postTmp) {
  4.                 if (is_array($postTmp)) {
  5.                         $array[$k]= decodeUTF8($postTmp);
  6.                 }else{
  7.                         $array[$k] = utf8_decode($postTmp);
  8.                 }
  9.         }
  10.  
  11.         return $array;
  12. }
  13. //Su uso:
  14.  
  15. $_POST = decodeUTF8($_POST);

Los ejemplos son en PHP pero deben tener sus similares en otros lenguajes de servidor como ASP, JSP, etc…

Compartelo con tus amigos:

Compartelo!   

¿Te pareció interesante la nota?, registrate a nuestro Feed para que estes al dia con las últimas notas que publicamos en WebAdictos, tambien te invitamos a explorar nuestros archivos tal vez encuentres notas y recursos que te sean de utilidad.

Si lo prefieres puedes utilizar el botón de post aleatorio para ir saltando entre nuestros contenidos.
Gracias por visitarnos.

11 Comentarios para “Tip Para Solucionar Problema con Acentos al Utilizar AJAX”

« Antiguos
Nuevos »
  1. alvaro miranda

    Pariente muchisimas gracias solo copie y pegue esto header(“Content-Type: text/html; charset=iso-8859-1″); en la pagina q hacia la llamada con ajax y funciono 100 pts busque toda la mañana codigos en vb y no se q mas configuraciones y me pille con esta respuesta muy bien muchas gracias :D

  2. Juan

    Gracias por la ayuda, me ha servido

  3. Rodrigo

    Gracias por la solución, desde ahora en favoritos de mi navegador, saludos.

  4. elias

    que tal, tengo el mismo problema de los acentos pero solo al guardar un form en MySQL, use poner el utf8_decode variable por variable y funciona perfecto, pero al tratar de hacerlo con el metodo de la funcion no me funciono, alguna sugerencia.

    Saludos

  5. Bladimir Ajat

    Muchas gracias señores de webadictos.com.mx, son de gran ayuda los tips. Busqué por todos lados pero nadie explicó con buen detalle.

Leave a Reply

Tu banner aquí

Recibir Artículos Por Email