lunes, 23 de noviembre de 2009

Nota mental MySQL

Hay mucha gente que "pasa olímpicamente" de cuidar la codificación de caracteres de sus documentos. Si ya es un lío modificar el juego de caracteres de un documento en concreto(a veces con iconv no obtenemos el resultado deseado), imaginaos la que se puede montar si tenemos una base de datos con miles de registros, y mostramos los resultados de una consulta vía web con codificación UTF-8 y los registros están codificados en ISO-8859-1. Sé que PHP, por ejemplo dispone de funciones que convierten "al vuelo" un juego de caracteres al otro, pero en mi caso, como con iconv, no obtenía los resultados esperados. En un intento casi desesperado he logrado convertir los caracteres que para UTF-8 son extraños de cadenas codificadas en ISO-8859-1 dentro de una base de datos MySQL. Para que no me vuelva suceder, y antes de asesinar a un usuario(luser), anoto lo siguiente.
ISO--UTF8
á => á
é => é
í => í
ó => ó
ú => ú
ñ => ñ


UPDATE unidades SET titulo = REPLACE (titulo, 'á', 'á');
UPDATE unidades SET titulo = REPLACE (titulo, 'é', 'é');
UPDATE unidades SET titulo = REPLACE (titulo, 'í', 'í');
UPDATE unidades SET titulo = REPLACE (titulo, 'ó', 'ó');
UPDATE unidades SET titulo = REPLACE (titulo, 'ú', 'ú')

Lo sé, no es el método más indicado, pero funciona!

No hay comentarios: