Foros del Web » Programando para Internet » Javascript » Frameworks JS »

No reconoce caracteres especiales

Estas en el tema de No reconoce caracteres especiales en el foro de Frameworks JS en Foros del Web. Hola a todos, tengo esta funcion y al insertar la respuesta en el documento, los caracteres con acentos y 'ñ' no los reconoce. Como puedo ...
  #1 (permalink)  
Antiguo 11/12/2007, 12:36
 
Fecha de Ingreso: marzo-2007
Mensajes: 135
Antigüedad: 17 años, 1 mes
Puntos: 0
Pregunta No reconoce caracteres especiales

Hola a todos, tengo esta funcion y al insertar la respuesta en el documento, los
caracteres con acentos y 'ñ' no los reconoce. Como puedo solucionar esto??





fetchPOSTData:function (url,datatosend,objid) {
xmlhttp = this.initXMLHTTPRequest();

if (datatosend) {
var senddata = 'senddata=' + datatosend;

xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4) {
var ob = document.getElementById(objid);
ob.innerHTML = xmlhttp.responseText;
}
}

xmlhttp.open('POST',url,true); // application/x-www-form-urlencoded
xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
xmlhttp.send(senddata);
}
}

Gracias.
  #2 (permalink)  
Antiguo 11/12/2007, 13:02
 
Fecha de Ingreso: diciembre-2003
Mensajes: 1.583
Antigüedad: 20 años, 3 meses
Puntos: 13
Re: No reconoce caracteres especiales

Ajax siempre te va a devolver los datos codificados como UTF-8 (xmlhttp.responseText). Si luego va sa imprimir esos datos en una página codificada coo ISO-8859-1 lógicamente tendrás problemas. ¿Soluciones?

Si esos datos los estás devolviendo desde un PHP (el parámetro url) podrías convertirlos a latin 1 con la función utf8_decode(). Ahí responseText los recibiría como ISO y no coo UTF-8.
__________________
El conocimiento es libre: Movimiento por la Devolución
  #3 (permalink)  
Antiguo 11/12/2007, 15:04
 
Fecha de Ingreso: marzo-2007
Mensajes: 135
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: No reconoce caracteres especiales

Siento no entender mucho de AJAX, estoy aprendiendo, pero como puedo hacer un
utf8_decode a todo el codigo PHP que recoge responseText...

la funciona ajax recoge un resultado de 'ajaxgal.php', pero como hago para convertirlo todo antes de inertarlo en el elemento del documento.

Gracias.
  #4 (permalink)  
Antiguo 11/12/2007, 16:18
 
Fecha de Ingreso: marzo-2007
Mensajes: 135
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: No reconoce caracteres especiales

Ya esta, es tan facil como poner al comienzo de la URL que
recoge AJAX :

<?
header('Content-Type: text/xml; charset=ISO-8859-1');
?>

asi devuelve caracteres ISO y no en UTF-8
  #5 (permalink)  
Antiguo 11/12/2007, 16:45
 
Fecha de Ingreso: marzo-2007
Mensajes: 135
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: No reconoce caracteres especiales

Y para que se hace esto ?????

xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
  #6 (permalink)  
Antiguo 13/12/2007, 17:31
Avatar de Snd234  
Fecha de Ingreso: mayo-2007
Ubicación: Frente al PC
Mensajes: 413
Antigüedad: 16 años, 11 meses
Puntos: 2
Re: No reconoce caracteres especiales

Cita:
Iniciado por miguelcubas Ver Mensaje
Y para que se hace esto ?????

xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
especifica la codificacion con que se ENVIAN los datos.


Yo tuve el mismo problema, de hecho mi pagina principal estaba codificada con UTF8, la pagina PHP que procesaba uno datos tenia la siguiente cabecera
Código:
 header('Content-Type: text/html; charset=utf-8');
Pero cuando por ejemplo quería mandar un alert con el mensaje que genero la pagina PHP, los caracteres especiales no se veían correctamente, así que no entiendo porque si todo estaba codificado en UTF-8 no se veía correctamente. Lo raro es que reemplace todo por la codificación ISO-8859-1, la pagina principal y la pagina que procesaba la información y luego al mostrar el resultado se veía correctamente.
__________________
KIBIT.cl
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:39.