Avatar billede Slettet bruger
19. februar 2009 - 21:16 Der er 12 kommentarer og
1 løsning

Konvertering af charset

Hej!

Jeg har, gennem en converter, konverteret mit gamle forumsystem til et nyt. Dette fungerer udmærket, dog vises "specielle" tegn ikke som de burde ("hjælp" vises f.eks. som "hjælp").

Alle mine tabeller (både gamle og nye) har charsettet utf8_danish_ci.
Kan jeg på nogen måde opdatere mine tabeller, så de udskrives korrekt (det er et krav at de skal være gemt i UTF-8)?

//Kaloer
Avatar billede arne_v Ekspert
19. februar 2009 - 21:24 #1
Data ser ud til at vaere UTF-8 !

Men serveren fortaeller browseren at det er ISO-8859-1.

Faa serveren til at fortaelle browseren det rigtigt og det vil formentligt virke.

Enten server config og HTTP header eller med META tag.
Avatar billede Slettet bruger
19. februar 2009 - 21:39 #2
Jeg har META tag med utf-8, og jeg regner også med at systemet udskriver sender en header med UTF-8 (systemet bruger i hvertfald UTF-8, men jeg har ikke undersøgt det).

Desuden registrer Firefox også siden som UTF-8.
Avatar billede arne_v Ekspert
19. februar 2009 - 21:48 #3
Hmm.

Saa er der sket noget meget slemt ved den database konvertering.

Kan dine UTF-8 data vaere blevet fejl-konverteret fra ISO-8859-1 til UTF-1 ?

(eller fejl-konverteret 2 gange ?)
Avatar billede erikjacobsen Ekspert
19. februar 2009 - 22:19 #4
Har du et link til siden?
Avatar billede Slettet bruger
19. februar 2009 - 22:48 #5
Jeg tror mest på, at det er converteren der er noget galt med.
Det jeg helt præcist har gjort er:
Installeret SMF (og valgt at det skal bruge UTF-8), hvorefter jeg gennem deres converter har konverteret mit gamle forum.
Det er egentlig meningen at jeg skal bruge phpBB, men da der ikke findes en converter til det, har jeg valgt først at konvertere til SMF og derefter til phpBB (men det er vel ikke nødvendigt at I får linket til phpBB, da det er inden det "led" fejlen sker?).

Linket til SMF er: http://www.fifazone.dk/joomla/SMF/
Avatar billede Slettet bruger
19. februar 2009 - 22:50 #6
Jeg går desuden ikke ud fra at det gør nogen forskel at SMF har tabellerne i utf8_general_ci, og mit gamle forum havde dem i utf8_danish_ci.
Avatar billede erikjacobsen Ekspert
19. februar 2009 - 22:54 #7
Det betyder ikke noget her.

Og arne_v må have ret - det er blevet konverteret en gang for meget. Siden vises som UTF-8 som angivet i http-headeren. Og derfor er de "sjove" tegn faktisk det der står i teksten, som UTF-8.

Jeg kan ikke lige gennemskue hvad der er sket, og hvordan det repares. Vil det ikke være nemmest at starte forfra med en backup?
Avatar billede Slettet bruger
19. februar 2009 - 23:01 #8
Hvis du med "starte forfra" mener at prøve at konvertere igen, er det desværre ikke første gang jeg forsøger. Jeg har forsøgt mange gange med det samme resultat.
Avatar billede erikjacobsen Ekspert
19. februar 2009 - 23:10 #9
Måske skal det slet ikke konverteres. Er data i tabellerne allerede i utf-8? (ikke om tabellerne er indstillet til det)
Avatar billede Slettet bruger
19. februar 2009 - 23:33 #10
Jo, de gamle tabeller er også i UTF-8, men problemet er, at tabelstrukturen er anderledes i det nye system, og derfor er det jo nødvendigt med en eller anden form for konvertering.
Avatar billede arne_v Ekspert
20. februar 2009 - 02:09 #11
Jeg er bange for at en total konvertering forfra vil lave ged i den igen.

Men det må være muligt at lave noget PHP kode som løber alle tabeller, alle rækker og alle kolonner igennem oh konverterer tilbage.

Så vidt jeg kan så virker 2 x utf8_decode.

Prøv selv med:

<?php
$s = "hjælp";
echo $s ."<br>\r\n";
$s = utf8_decode($s);
echo $s ."<br>\r\n";
$s = utf8_decode($s);
echo $s ."<br>\r\n";
?>
Avatar billede Slettet bruger
20. februar 2009 - 10:53 #12
Perfekt - det løste problemet.

Læg et svar, så du kan få point.
Tak for svarende begge to!
Avatar billede arne_v Ekspert
20. februar 2009 - 15:04 #13
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester