Evitar navegación.
Principal

Problemas de acentos con Ajax

Este es un problema con el que la mayoría de las personas que empiezan con Ajax se tropiezan alguna vez.

Se trata del problema de carácteres especiales y Ajax, esto ocurre al pasar la información desde PHP a Javascript dónde se pierden carácteres importantes cómo los acentos o las ñ.

Buscando por internet encontrarás muchas soluciones pero muchas de ellas no te ayudan en nada, se suele tender a pensar que el problema esta en la codificación de carácteres (UTF8, ISO-8859-1, etc) pero la solución a menudo está en el uso de la función urlencode() que devuelve la cadena codificando los espacios como signos de suma (+) y los demás carácteres los codifica con %+código.

Si lo que pretendemos arreglar es texto que no está agrupado en ninguna variable deberiamos fijarnos que los acentos y carácteres especiales esten escritos de esta manera:

avión -> avión
jugará -> jugará
jugón -> jugón

Ahora para terminar y que se muestre todo perfecto en nuestro archivo Ajax al recoger el resultado utilizaremos la funcion.

En el archivo de AJAX al recoger el resultado debemos hacer un unescape, para mostrar los carácteres correctamente y no su código:

unescape("He%20aquí")="He aquí"

Ademas sustiuiremos los símbolos (+) por espacios:

cadena=unescape(ajax.responseText);
cadenafinal=cadena.replace(/\+/gi," ");
document.getElementById(contenidor).innerHTML=cadenafinal;

Probablemente a muchos no les sirva de gran ayuda esta entrada pero el qué estaba buscando la solución a este problema seguro que lo agradecerá.

Enlaces Relacionados


Gracias por tu ayuda me

Gracias por tu ayuda me funcionó perfectamente.

como puedo obtener el manual

nesesito elmanual para aprender de esteprograma

Este código parece una

Este código parece una copia del que hay en http://ajax.elmultiusos.com/doc.php?op=contingut&id=1164 (antes era la web de www.xlwebmasters.com)

Lo mas decente seria poner un enlace a dicha web.

Lo he visto porque yo lo saque de alli el dia que lo pusieron y hoy mirando esta web me ha sonado repetido.

me lo mando un compañero de

me lo mando un compañero de trabajo, pero por lo que he visto no es ninguna copia y si se parece pues nada ya esta ahi puesto el enlace ;), muchas gracias por el aviso

con un meta

yo tenia ese problema pero simplemente lo solucione con un meta:

este lo copie en la pagina donde voy a mostra el contenido por AJAX , y no tube nesecidad de modificar las funciones.

a mi tambien me paso

solucinarlo con la funcion de php utf8_decode
Esta función decodificadata, asume codificación UTF-8 , a ISO-8859-1.

tambien esta utf8_encode:
Esta función codifica la cadena dada a UTF-8, y devuelve la versión codificada.

a mi me paso lo mismo

Hola, yo tambien me he encontrado con problemas del mismo estilo. Al final tambien hay que fijarse en la cabecera de la pagina, si es iso o uft8. Finalmente si no recuerdo mal tuve que poner a mano en la pagina un header con iso, sino no habia manera.
A mi Ajax me gusta pero para cosas muy concretas, en definitiva, pijadas para que quede mas usable y bonita la pagina, pero no como un "siempre hay que poner ajax porque esta de moda".
Saludos.
Pda: No hay manera de "acertar" el problema matematico. No funciona bien el sistema.

Enviar un comentario nuevo

El contenido de este campo se mantiene como privado y no se muestra públicamente.
  • Las direcciones de las páginas web y las de correo se convierten en enlaces automáticamente.
  • Etiquetas HTML permitidas: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Saltos automáticos de líneas y de párrafos.

Más información sobre opciones de formato