WordPress site lagt om fra ISO-8859-1 (Latin 1) til UTF-8 enkodning
Pyyyyyyyyhha… Det var sq’ nervepirrende!
For en time siden påbegyndte jeg omlægning fra ISO-8859-1 til UTF-8 enkodning af denne hjemmeside. Og hvorfor er det så vigtigt? Jo, det er det fordi der dags dato også er blevet opgraderet WordPress version fra 2.6.5 til version 2.7. Den nye version 2.7 kunne ikke li’ ISO-8859-1 enkodningen der tidligere blev anvendt, hvilket dog kun gav sig udslag i en enkelt RSS-feed læser i administrationsinterfacet. Desuden er UTF-8 et større tegnsæt at anvende, og det var i sin tid en fejl der overhovedet blev sat ISO-8859-1 idrift på denne side.

Sådan skete omlægningen, der teoretisk set burde være helt ens for uanset din version af WordPress:
- Tag en backup af din wordpress database (jeg lavede en komplet export via phpmyadmin)
- Tag endnu en backup af din WordPress database (jeg anvendte her plugin’et WP-DB-BACKUP)
- Er du tilstrækkeligt paranoid og/eller stærk i troen hvad angår Murphy’s lov, så gentag punkt 1 og 2 til mere end en harddisk og/eller usb nøgle som jeg.
- Opret filen index.html i roden af din WordPress mappe – og skriv en besked heri om at hjemmesiden er midlertidigt nede pga. vedligeholdelse
- Ret filnavnet i WordPress mappen fra index.php til _index.php
- Start phpmyadmin eller tilsvarende administrativt DB interface
- Lav en export af samtlige wordpress tabeller, og sørg for ikke at gemme “CREATE TABLE” instruktioner til den resulterende SQL fil der kun må indeholde inserts efterfølgende
- Behold phpmyadmin/db-interface åbnet og åben så den eksporterede SQL fil i en UTF-8 kompatibel editor, f.eks. Notepad++
- Tving filen i UTF-8 tilstand, og verificer at special tegn såsom Æ ØÅ æøå ser korrekte ud
- Søg efter “blog_charset”, og ret værdien “iso-8859-1″ til “UTF-8″
- Gem SQL filen og luk Notepad++
- Vend tilbage til phpmyadmin/db-interface og tøm samtlige WordPress tabeller
- Gå lidt i panik – din blog er nu slettet helt, og du har selv gjort det!
- Ret collation for alle WordPress tabellerne, en efter en, fra “latin1_danish_ci” til “utf8_danish_ci”, både på kollone niveau og default collation
- Importer nu SQL filen til WordPress databasen (det er vigtigt filen ikke indeholder CREATE TABLE, da disse instruktioner sætter collation tilbage til iso.8859-1 !)
- Tilpas din wp-config.php så du er sikker på den indeholder linien “define (‘DB_CHARSET’, ‘utf8′);”
- Slet index.html og omdøb _index.php til index.php
- Kryds fingre – det skulle være det!
En stor tak til Jakob Kruse for hjælpen iøvrigt!