Este método a continuación parece realmente prometedor y mejor aún, hermoso en su simplicidad. La idea es mysqldump toda su base de datos como latin1 y luego importarla recodificada como utf-8.
Exportar:
Importar:
No tomo crédito por esta solución, es completamente de Blog de Gareth Price . Ha funcionado para todos los que le han dejado un comentario hasta ahora:"Wow man acabas de salvarme la vida. No dediqué 2 horas a esto, sino 2 días" llamó mi atención.
Actualización n.º 1: Parece que Gareth era no es el primero para descubrir esto.
Actualización n.º 2: Acabo de probar esto y funcionó muy bien para mi base de datos UTF8-stored-as-latin1. Solo asegúrese de cambiar el conjunto de caracteres predeterminado en su base de datos a utf8 antes importando, o de lo contrario terminará con simples signos de interrogación donde estaban los caracteres especiales. Por supuesto, esto podría tener muchas otras ramificaciones, así que prueba como el infierno primero.
Y si tiene tablas que no están configuradas con el esquema predeterminado:
(la misma idea si tiene alguna configuración de juego de caracteres específica de columna, tendrá que hacer ALTER TABLE [table] CAMBIAR COLUMNA [configuración] sin especificar CHARACTER SET para que vuelva a la tabla predeterminada)