Uno de los grandes problemas con los que nos encontramos los programadores de habla no inglesa es el trabajar con los caracteres que no tiene el alfabeto inglés. Si a esto le sumamos que en algunos escenarios de tenemos que combinar nuestro trabajo entre diferentes entornos, por ejemplo entre Windows – Linux, nos podemos encontrar más de una sorpresa a la hora de mostrar o trabajar con esos datos. Tengo que decir que hace unos años era bastante peor, y seguro quemas de uno ha tenido que sufrir estos problemas más de una vez.
¿Qué les ha pasado a los acentos y a las eñes?
¿Cuantas veces nos han hecho, o nos hemos hecho está pregunta? Muchas veces la respuesta suele ser la misma, «a mi en mi ordenador me sale bien, espera que voy a mirar qué codificación de caracteres tienes en el navegador, aquí esta, lo tienes en ISO-8859 y para qué salga bien tiene que estar en UTF-8». El caso anterior, suele pasar cuando se usan los caracteres tal cual, sin usar las entidades HTML, y se nos olvida poner el tipo de codificación en el cabecera, y con eso en principio, si los clientes tienen la codificación en automático no hay problema.
Lo qué a veces puede suponer un problema, es sí obtenemos los datos de un sistema Windows y lo procesamos en un sistema *nix. En estos casos, sobre todo sí la base de datos es antigua, como Paradox o db2, que nos encontremos que los datos que nos devuelve, es probable que estén en CP1252, que es prácticamente lo mismo que el ISO-8859-1, pero puede que a la hora de procesarlo nos de alguna sorpresa. Para estos casos especiales en los cuales no hay manera que nos salgan los datos bien, encontré googleando la siguiente página en la cual nos sale una tabla de equivalencias que nos puede ayudar en algún caso desesperado.
http://www.i18nqa.com/debug/utf8-debug.html#dbg