Nu har jag äntligen tagit tag i teckenkodningseländet. Jag har länge varit jobbigt medveten om att WordPress kommer bäst överens med UTF-8 – och för 30 minuter sedan gjorde jag det: Jag konverterade Worpressdatabasen från latin1 till utf8.
Jag var beredd på att det skulle strula, men det gick faktiskt hyfsat smärtfritt. Här följer en kort beskrivning av tillvägagångssättet:
1. Gör en kopia av databasen, saker kan ju gå fel. Själv föredrar jag att kopiera alla tabeller och data till en annan MySQL-databas snarare än att dumpa till en fil. Åtminstone i det här fallet.
2. Dumpa den databas som ska konverteras (från latin1 till utf8) till en fil med hjälp av phpMyAdmin: Välj databasen, klicka sedan på fliken Exportera, kryssa i Lägg till DROP TABLE och Spara som fil. Klicka på Kör och spara filen någonstans.
3. Öppna den nyss sparade filen i en texteditor som kan konvertera mellan olika teckenkodningar. Konvertera filinnehållet till UTF-8 och spara. Jag använde Notepad2 (File > Encoding > UTF-8).
4. Använd sök-och-ersätt-funktionen i samma texteditor och ersätt alla latin1 med utf8. Spara.
5. Klicka på Importera i phpMyAdmin och välj filen du modifierade i steg 3 och 4. Glöm inte att välja rätt ”teckenuppsättning”: utf8 om steg 3 gick bra, annars kan du testa med latin1. Kör!
6. Ändra WordPresskonfigurationen (Inställningar > Läsa > Teckenkodning för sidor och syndikeringsfiler) från ISO-8859-1 till UTF-8. Samta ändra i wp-config.php (DB_CHARSET ska defineras som utf8).
Nu ska det förhoppningsvis vara klart. Om du har templatefiler som innehåller åäö (eller andra ickestandardtecken) så behöver du konvertera dessa till UTF-8 (se steg 3).