Este método abaixo parece realmente promissor e melhor ainda, bonito em sua simplicidade. A idéia é que você mysqldump seu banco de dados inteiro como latin1 e depois importe-o recodificado como utf-8.
Exportar:
Importar:
Não recebo nenhum crédito por esta solução, é completamente de Blog de Gareth Price . Funcionou para todos que deixaram um comentário até agora:"Uau cara, você acabou de salvar minha vida. Eu não gastei 2 horas nisso, mas 2 dias" Pegou minha atenção.
Atualização nº 1: Parece que Gareth não foi não é o primeiro para descobrir isso.
Atualização nº 2: Acabei de tentar isso e funcionou lindamente para o meu banco de dados UTF8-stored-as-latin1. Apenas certifique-se de mudar o charset padrão em seu banco de dados para utf8 antes importando, ou então você acabará com pontos de interrogação simples onde estavam os caracteres especiais. Claro que isso pode ter muitas outras ramificações, então teste primeiro.
E se você tiver alguma tabela que não esteja definida com o padrão do esquema:
(mesma ideia se você tiver alguma configuração de charset específica de coluna, você terá que fazer um ALTER TABLE [table] ALTERAR COLUNA [configurações] sem especificar CHARACTER SET para que volte ao padrão da tabela)