«

»

jul 26 2009

Skriv ut Innlegg

Databasen konvertert fra iso-8859-1 til utf-8

Jeg har i lengre tid hatt lyst til å konvertere hele databasen til kak.net til utf-8. Jeg har helt siden jeg begynte med mine egne websider brukt iso-8859-1. Det er en eldre standard som man sluttet å vedlikeholde i 2004. Det har i grunn fungert helt greit for meg inntil i det siste, for jeg har hatt litt kompatibilitetsproblemer med enkelte plugins i WordPress. Det har også vært litt krøll med RSS mellom car.kak.net og blog.kak.net.

Derfor prøvde jeg for en tid tilbake å konvertere hele databasen med ett script jeg fant, noe som mildt sagt gikk til helvette. Jeg trodde jeg var på den sikre siden med backup og det hele, men det hjelper jo lite når backupfila av databasen er så stor at den stopper opp underveis. Så da satt jeg der da, med en database fucked til de grader med ett tegnsett som ikke ligna grisen. I tillegg hadde scriptet jeg prøvde å bruke klart å kutte så og si alle artiklene mine. Derfor var det ikke annet å gjøre enn å laste opp databasebacup’en og sende melding til min webhotelleverandør. Men de sitter jo ikke nødvendigvis og venter på oppgaver fra meg døgnet rundt. Websidene mine var derfor nede en del timer den gangen.

Derfor har jeg vært litt mer forsiktig og nøye med undersøkelsene på forhånd og for ikke å snakke om å ikke teste ut på kak.net “live”. Men denne gangen ble det gjort litt mer manuelt enn det første forsøket. Konverteringen ble enkelt og greit gjort på denne måten:

– Eksporter databasen (eller den delen av databasen som du skal konvertere, i mitt tilfelle blog.kak.net i første omgang) med phpmyadmin.

– Åpne databasefila i Notepad++ og velg “Format” og “Convert to UTF-8”. Deretter fjerner du alle spor av “DEFAULT CHARSET=latin1”. Du bør helst teste ut dette i ett eget miljø før du erstatter databasen til din “live” webside. I mitt tilfelle erstattet jeg alle refeanser til “blog_” med “test_”.

– Importer databasefila (pakk den gjerne ned med zip først, så går opplastingen fortere) med phpmyadmin

– Endre wp-config.php til å peke mot “test_” istedenfor det vanlige. Da får du testet ut om den konverterte databasen fungerer som den skal eller ikke.

– I WordPress sin “Site Admin” klikk på “Settings” og “Reading”. Endre hva du måtte ha på “Encoding for pages and feeds” til “UTF-8”. Før du gjør dette vil nok mange av de særnorske tegnene og symboler se ganske snåle ut. Men etter å ha gjort disse endringene skal tegnsettet ditt være korrekt.

Hvis alt fungerer som det skal mot den nylig konverterte utgaven av databasen din, kan du slette den opprinnelige delen av databasen, i mitt tilfelle “blog_”. Før du går videre må du selvfølgelig endre alle forekomster av “test_” med “blog_” (eller hva du bruker som prefix). Deretter er det bare å importere den konverterte databasen, nå som “blog_”. Når databasen er ferdig opplastet, endrer du wp-config.php tilbake til “blog_” og “UTF-8” i WordPress-innstillingene. Hvis du har holdt tunga rett i munnen og gjort alt riktig frem til nå, skal websidene dine fungere som de skal, nå med UTF-8 som kodesett istedenfor iso-8859-1.

Jeg gjorde det samme med car.kak.net og prat.kak.net. Sistnevnte var en mye større database og måtte settes igang 3 ganger i phpmyadmin pga timeout. Men heldigvis kan den fortsette der den glapp! Nå kjøres både blog.kak.net, car.kak.net og prat.kak.net med UTF-8 her på kak.net. Endelig i mål!

Permalenke til denne artikkelen: http://blog.kak.net/2009/07/26/databasen-konvertert-fra-iso-8859-1-til-utf-8/

Legg inn en kommentar