Pasando una base de datos a UTF8

Hace poco he tenido que realizar la conversión de varias bases de datos MySQL a UTF-8, y concretamente una de ellas me dio más problemas de los esperados, ya pertenecía a una base de datos documental que puse en marcha en el año 2005, y por tanto contenía referencias a nombres de archivo. Todo esto unido a un cambio de hosting, a un servidor linux que sí tenía el sistema de archivos codificado como UTF-8, hizo que empezaran los problemas.

Prerrequisitos

Hay varios requisitos anteriores. Deben estar codificados como UTF-8:

  1. la conexión de la base de datos (En my.cnf)
  2. las tablas de la base de datos.

Ambas opciones son fácilmente configurables desde PHPMyAdmin.

Convirtiendo la base de datos con iconv

Lo primero que habría que hacer es un volcado de la base de datos:

mysqldump --opt -u root -p base_datos > base_datos.sql

Una vez tenemos nuestro archivo de volcado, usamos el ejecutable iconv para hacer la conversión:

iconv -f iso-8859-15 -t utf8 base_datos.sql > base_datos_iconv.sql

Perfecto, ya tenemos los datos convertidos, pero habría que asegurarse de que MySQL interprete los datos como UTF-8. Para ello abrimos el archivo con un buen editor como Textmate o Coda:

No Comments

Post a Comment

You must be logged in to post a comment.