utf8_decode, cuando en Ajax nos devuelve caracteres raros

Algunas veces cuando hacemos una página HTML, al poner una palabra acentuada

El veloz murciélago hindú comía feliz cardillo y kiwi

Nos devuelve

El veloz murciélago hindú comÃ*a feliz cardillo y kiwi

Usualmente esto pasa cuando retornamos un valor usando AJAX o imprimiendo valores de una base de datos…

esto es porque el JUEGO DE CARACTERES de la pagina web, está en ISO-8859-1 y recibimos la cadena en UTF8 (o viceversa) una forma de solucionarlo es cambiar en la cabecera del HTML

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

o UTF si usamos eso

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

utf8_decode y utf8_encode
Hacer lo anterior puede romper nuestro código que ya trabaja bien ; lo ideal en esos casos es que cuando hagamos un proceso, al momento de enviar los datos (vía AJAX por ejemplo), le apliquemos un utf8_decode (si trabajamos sobre ISO-8859-1) o utf8_encode (si trabajamos sobre UTF-8)

$variable = utf8_decode($variable);

con eso evitaremos tener esos caracteres extraños (basura) cuando imprímanos nuestra variable

Más información: utf8_decode
Más información: utf8_encode

Comments

Agregue un comentario

Su dirección de correo no se hará público. Los campos requeridos están marcados *