Den här metoden nedan ser riktigt lovande ut och ännu bättre, vacker i sin enkelhet. Tanken är att du mysqldumpar hela din databas som latin1 och sedan importerar den omkodad som utf-8.
Exportera:
Importera:
Jag tar ingen ära för den här lösningen, den är helt från Gareth Prices blogg . Det har fungerat för alla som har lämnat honom en kommentar hittills:"Wow man, du räddade precis mitt liv. Jag spenderade inte 2 timmar på det här, men 2 dagar" fångade min uppmärksamhet.
Uppdatering #1: Ser ut som att Gareth var inte den första för att upptäcka detta.
Uppdatering #2: Jag har precis provat detta och det fungerade utmärkt för min UTF8-lagrade-som-latin1-databas. Se bara till att du ändrar standardteckenuppsättningen i din databas till utf8 före importera, annars får du vanliga frågetecken där specialtecknen fanns. Naturligtvis kan detta ha många andra konsekvenser så testa som fan först.
Och om du har några tabeller som inte är inställda på schemats standard:
(samma idé om du har några kolumnspecifika teckenuppsättningsinställningar måste du göra en ALTER TABLE [tabell] ÄNDRA KOLUMN [inställningar] utan att specificera CHARACTER SET så den går tillbaka till tabellens standard)