viernes, 20 de mayo de 2011

AJAX , problemas con acentos , htmlentities, utf8_encode,iso-8859-1,UTF-8

Hace unas programando una web se me presentó un problema , y es que haciendo llamadas AJAX a contenidos mediante JQuery , los caracteres con acentos, no se veían bien , estoy al tanto de que para visualizar estos caracteres en el documento HTML , hay que usar el estándar iso-8859-1:

<meta equiv="Content-Type" content="text/html; charset=iso-8859-1">


Pero el problema era solo cuando se hacían peticiones asincrónicas al servidor. Una solución puede ser enviar estos caracteres codificados, usando por ejemplo la función: htmlentities
htmlentities(“texto con acentos: áé”); // devuelve: texto con acentos: áé

Pero el problema radica en que al hacer una petición AJAX , los texto interpretados como si fueran en formato UTF-8, sin embargo lo que yo estaba enviando era texto en formato iso-8859-1, por lo tanto se produce un error , la solución más optima es usar la función : utf8_encode , que recibe como parámetro un texto en formato : iso-8859-1 y lo convierte en UTF-8.

La función contraria a utf8_encode, es utf8_decode
A mí me funcionó de maravillas.



Moises Soft (Desarrollo web en Cuba)

No hay comentarios:

Publicar un comentario