convertir de latin1 a utf8 en mysql

Estuve todo el día tratando de hacerlo pero lo logré. Migré una DB con default charset ISO-8859-1, osea latin1, a utf8 en mysql (motor de base de datos con el que no simpatizo para nada).

La idea es exportar los datos crear una base nueva con el juego de caracteres utf8 y luego importar los datos en la nueva base de datos.

La forma de hacerlo es la siguiente:

1) Pasamos el contenido de la base de datos a un archivo de texto plano (asegurándonos exportarlo en el charset adecuado).

mysqldump -u USUARIO -p BASEDEDATOS –default-character-set=latin1 > backup.sql

2) ingresamos a la consola

mysql -u USUARIO -p

creamos una dase de datos nueva con el charset bien configurado en utf8:

CREATE DATABASE nombre_base_nueva CHARACTER SET utf8 COLLATE utf8_general_ci;

3) Eh aquí el paso mágico que no me salia y encontré en internet después de un buen rato

Convertimos de un charset a otro sin perder información:

iconv -f ISO-8859-1 -t UTF-8 backup.sql > backup_utf8.sql

Luego cambiamos las sentencias de armado de la base para que conincidan cuando creemos la nueva.
Yo lo hize con un editor de textos y con search and replace (el editor de textos debe soportar utf-8 !!)
pero también se puede hacer así:

perl -pi -w -e 's/CHARSET=latin1/CHARSET=utf8/g;' backup_utf8.sql

4) por último importamos los datos a la base nueva utf8
mysql -u USUARIO -p nombre_base_nueva –default-character-set=utf8 < backup_utf8.sql

Fuente: Gentoo-wiki

4 Responses to “convertir de latin1 a utf8 en mysql”

  1. Tip para convertir de latin1 a utf8 en MySQL Says:

    [...] nulleando.com.ar nos llega un útil tip para convertir el charset de una base de datos MySQL sin perder (ni cambiar) [...]

  2. nulleando.com.ar » Blog Archive » AddDefaultCharset on malo ! Says:

    [...] lograr esto tuve que luchar un poco ayer, y hoy aprendí algo nuevo en mi lucha diaria, esta vez sobre la configuración de apache [...]

  3. ociotec.com — OCIO y TECnología — » Convertir BD en MySQL de LATIN1 a UTF8 Says:

    [...] convertir de latin1 a utf8 en mysql Posts relacionados: Servicios de est… (0) Posts en mismas categorías: Como construir u… (4), Cómo fundir/clo… (13), Cómo hacer mold… (21), Cómo hacer una … (2), Make Magazine (0), MAME maniacs (0), Nuevas descargas… (0) EHT Related v0.2.5 by Emilio González Montaña [...]

  4. AddDefaultCharset ON es malo! | Amado Urias G. Says:

    [...] lograr esto tuve que luchar un poco ayer, y hoy aprendí algo nuevo en mi lucha diaria, esta vez sobre la configuración de apache [...]

Leave a Reply