AJAX y el charset
Actualmente parece que la panacea es la utilización de la tecnología AJAX en todo tipo de aplicaciones. Pero, por desconocimiento, los que recién se inician en ella suelen encontrarse con la desagradable sorpresa que los caracteres que envían no suelen ser los mismos que llegan al servidor, sobre todos aquellos que no utilizamos el inglés como lenguaje cotidiano.
Lea el resto del artículo haciendo clic aquí
Al usar AJAX generalmente utilizamos el método POST que permite enviar mayor cantidad de datos que GET y, además, POST es el método por omisión que utilizan la mayoría de los frameworks que se escribieron para el uso de esta tecnología.
Pues bien, el problema se presenta porque cuando se utiliza el método POST los datos se envían utilizando UTF-8 como charset, mientras que el método GET utiliza ISO-8859-1.
Con el charset UTF-8 suceden cosas desagradables como la desaparición de espacios en blanco o conversión de caracteres hispánicos en símbolos totalmente extraños para los latinos.
La solución esta en un método de Javascript poco utilizado que es escape.
var contenido = escape(myContenido);
En el servidor no es necesario hacer otra cosa.
Otra opción es no hacer nada del lado del cliente e implementar una “traducción” del lado del servidor. Para esto, los que utilizan PHP existe la función iconv que permite conversión entre distintos charsets.
$parm = iconv("UTF-8", "ISO-8859-1", urldecode($Ptmp));
0 Comentarios:
Mandar un comentario