17. august 2008 - 21:44Der er
16 kommentarer og 1 løsning
Danske bogstaver fremvises ikke rigtigt i browseren æ og ø og å
Hej Igen
Har et problem på mad.gojserne.dk. Den viser æ ø og å mærkeligt som små kasser. Jeg har for at teste lidt oprettet en ret ved navn Øllebrød, men denne overskrift vises rigtigt nok..., men resten gør ikke...
Mysql er en 5.0.32 version og tegnsæt er UTF-8 Unicode (utf8) PHP version 4/5 stykker på en Windowsserver.
Hvis du vil anvende tegnsættet UTF-8, som er et fornuftigt valg, så skal din tekst også være det. Den ser imidlertid ud til at være skrevet i ISO-8859-1. Hvor kommer din tekst fra?
Hemmeligheden, som egentlig ikke er så hemmelig, når man først ved det, er at anvende et og samme tegnsæt konskvent i alle led - lige fra indtastning, over database, til visning. Faktisk er det meget simpelt!
Det gælder også om at sørge for, at man gemmer sine tekstfiler med UTF-8 som "Encoding", da alle tekstfiler har sådan én. I Notesblok sættes Encoding f.eks., når man gemmer sine filer. Mange tager ikke højde for denne Encoding og sætter kun tegnsættet i meta-tag, men det er ikke nok.
Nu er jeg nybegynder i PHP, så hvordan ved jeg om det er sat i PHP, kan min udbyder sætte en defaultværdi? eller er der et centralt sted jeg kan sætte den selv? Nu er det en færdig applikation i php, så hvordan gør jeg det nemmest.
Så vidt jeg kan se fra sourcecode, bliver menu og alle de tekster der ser mærkelige ud ikke oversat, dvs. i sourcecode står de som æ ø og å, men Øllebrød, som ser rigtig nok ud står sådan: Øllebrød i sourcecode, så hvad er det der gør det?
Der må være en forskel på hvor de "forkerte" tekster og de "rigtige" tekster kommer fra.
Hvis de forkerte kommer fra en database (hvilket jeg gætter på), så prøv at køre queryen "SET NAMES utf8" umiddelbart efter du opretter forbindelsen. Det fortæller MySQL at du forventer UTF-8 som output (modsat nu, hvor den sikkert tror du forventer latin1 - det er nok sat op som standardforbindelsestegnsæt, og PHP ved jo ikke bedre).
Nu er jeg startet helt forfra. Mysql stod som latin..., så jeg slettede alt satte kollation til utf8. Stadig væk står det ikke rigtigt. Det hele kommer fra databasen og noget også fra tekstfiler. Det der står pænt er det jeg selv har tilført databasen fra gojserne.dk. Og nu rækker mine evner snart ikke til mere, så jeg overvejer at begynde at oversætte æ ø og å til &... bogstaver, med mindre i har en møggod ide.
Det er ikke fordi du direkte svarer på de spørgsmål vi stiller, men skal vi forstå det således, at de tekster der har problemer, kommer fra tekstfiler?
Okay, kunne jeg egentlig godt se da jeg læste det. Så nu prøver jeg igen.
Alle links overskrifter menupunkter som står forkert fremført i browseren, kommer fra et array i php-fil. Heri arrayet står det som det skal, men når det bliver kastet op på skærmen, kommer der som i kan se firkanter istedet for æ ø og å.
Jah. Tag en af de php-filer ind i notesblok, og gem den igen med "save as"/"gem som", hvor du nederst vælger "Encoding: UTF-8". Prøv derefter at se siden igen (efter upload til server etc.)
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.