Problemas de acentos con Ajax

Por el 9 de abril de 2007

en: Internet

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á.

1 Respuesta a Problemas de acentos con Ajax

Avatar

ismael

22 de diciembre de 2011 a las 6:19 pm

tengo la siguiente funcion:

function seleccionar(valor){

$(‘cargando’).update(“Cargando…”);
new Ajax.Updater(‘contenidoajax’, ‘ajax/ajax_doctores.php’, {
method: ‘get’,
parameters: {valor: valor},

onSuccess: function(){
$(‘cargando’).update(“”);
}
});

}

y por otro lado tengo la pagina php que me regresa la informacion correcta que requiero. esta pagina la abro directamente el select que lleno de la base de datos me muestra todos los acentos y las ñ sin problema.

sin embargo cuando realizo la consulta por la pagina de ajax me regresa algo parecido a “Cirug�a Vascular” sin comillas.

He intentado de todo para poder quitar esto y ya me quebre la cabeza si me pudieran apoyar por favor

Dejar un comentario