Buscar

Cargando...

miércoles, marzo 08, 2006

Acentos y Ñ's: Encoding de los XML devueltos por AJAX

Bueno sin mucho preámbulo ni explicación, les paso lo que hay que editar de los archivos para poder mandar Ñ's y acentos por XML.

El ejemplo se los quiero dar en un zip, base de datos en un archivo .txt con los Sqls, combos.php y modelos.php con todo y los cambios... pero no puedo subirlo al blogger para que lo puedan bajar... cualquier comentario es bienvenido.

por cierto los cambios fueron los siguientes:

Agregué el tag meta en el archivo combos.php que especifica el text/html;charset="ISO-8859-1"

y la línea en modelos.php
echo xml version=\"1.0\" encoding=\"ISO-8859-1\" ?
( borré las comillas y los tags de mayor que y menor que d ela linea de arriba porque si no blogger no me deja publicarla... (?:() )

con el encoding que permite que veamos las Ñ's y los acentos...

----------
Otro tip que les platico aparte que no puse en codigo pero que es buena practica es que utilicen encodingURI() para los valores que pondrán dentro de su query a enviar por AJAX.

Otro tip aunque no lo quieran es que si quieren enviar un POST en vez de un GET hagan lo siguiente:

xmlObject = getXMLObject();
query = "id=" + encodeURI( valorID );
xmlObject.open( "POST", "modelos.php", true );
xmlObject.setRequestHeader( "Content-Type", "application/x-www-form-urlencoded" );
xmlObject.onreadystatechange = funcion;
xmlObject.send( query );

1) Notese que no hay caracter "?"
2) Que despues del open se hace un setRequestHeader
3) que el send ahora no es null sino le pasamos el query (para que viaje por el payload toda la info, y ahi pueden meter bastante informacion no se preocupen, preguntenle al gmail cuando envien un archivo adjunto... uf, eso si que es AJAX!... un ENCTYPE="multipart/form-data" eso si que cuesta trabajo... bueno, inténtenlo con listeners y todo el asunto para hacer una barrita de progreso... auch!).

4) Ya me explayé con otra cosa... espero sus comentarios sobre esto, deben de haber otras formas de hacer encoding para evitar que salgan erroes por los acentos y las Ñ's pero esto es facil y rapido de implementar

Saludos...

Y happy AJAX coding!

PD. Aun no puedo hacer el envio de un archivo por AJAX... tal vez pronto lo pongamos aquí paso a paso :) a ver si alguien se anima a contarnos donde está el error.