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