Avatar billede KHHP Juniormester
16. februar 2012 - 19:25 Der er 12 kommentarer og
1 løsning

ÆØÅ vises som �(spørgsmålstegn i firkant)

Hej
Jeg har nu lavet flere forskellige hjemmeside med PHP og MySQL. Jeg har aldrig kunne få det til at virke 100%, hvis jeg skrev indholet til siden, som bliver hentet fra databasen, direkte i phpmyadmin. Det gælder både lokalt, på min private linux-webserver, samt på mit webhotel.
Jeg får i stedet for æ,ø,å et spørgsmålstegn i en firkant.
http://dl.dropbox.com/u/41698524/php-utf8.png
Mine tabeller i min database er sat til datatype MyISAM og Kollation utf8_danish_ci.
Er der nogen der kan give mig lidt hjælp til hvordan jeg får det til at virke?
Avatar billede inteeeL Nybegynder
16. februar 2012 - 19:48 #1
Det er utroligt så tit, dette spørgsmål kommer op. Men sådan er det :-)

Du vil få gavn af at se på denne side: http://dk.php.net/manual/en/function.mysql-set-charset.php - så du sikrer dig at sætte charset til UTF-8, når du henter fra databasen.

Husker du at sætte charset til UTF-8 i din meta-tag? Det burde se sådan her ud:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">


Sidst men ikke mindst; husker du at gemme filerne i korrekt format? De skal gemmes som UTF-8 uden BOM. I Notepad++ vil du kunne se dette under fanen "format".

Det er umiddelbart lige, hvad jeg kunne komme frem med.
Avatar billede keysersoze Guru
16. februar 2012 - 19:50 #2
Lad være med at benytte phpmyadmin - det er et gammelt og dårligt system sat op til ikke at fungere med UTF-8.

Tag et kig på disse tråde;

http://www.eksperten.dk/spm/956595
http://www.eksperten.dk/spm/956216
http://www.eksperten.dk/spm/955937
Avatar billede edin22 Nybegynder
16. februar 2012 - 20:49 #3
Fandt du ikke hjælp i overstående? Så prøv det her: http://edinm.dk/html-aeoa-problemer/
Avatar billede KHHP Juniormester
16. februar 2012 - 21:14 #4
Jeg arbejder med dreamweaver cs5, og bare lige for en god ordens skyld, så er her hele koden fra min index.php
http://pastebin.com/1jtQH45Q
Avatar billede keysersoze Guru
16. februar 2012 - 22:39 #5
#3 din løsning går direkte imod normalen i dag og kan på ingen måde anbefales.

#4 din kildekode afslører, udover alvorlige misforståelser mellem PHP og ASP.NET, kun meget meget lidt - som beskrevet fx her http://www.web-dev.dk/post/Korrekt-visning-af-specielle-karakterer-character-encoding.aspx så er der meget mere i korrekt styring af charset end at sætte et meta-tag. Læs de tre tråde jeg tidligere linkede til grundigt igennem og når du har gjort det så læs dem et par gange til - så vil du formentlig kunne løse dine udfordringer.
Avatar billede KHHP Juniormester
16. februar 2012 - 23:16 #6
Nu har jeg været det hele igennem et par gange, og er flere gange stødt på
mysql_set_charset('utf8')

men kan ikke lige finde ud af hvor den skal hen i mine dokumenter.
Det eneste jeg ikke lige kan finde ud af er hvordan jeg fikser encoding på filen, som der er beskrevet i den artikel du linker til. Den del kan jeg kun finde under page properties i dreamweaver, og den er sat til utf8, som du kan se her:
http://dl.dropbox.com/u/41698524/pageproperties.png
Avatar billede keysersoze Guru
17. februar 2012 - 15:18 #7
Jeg er ikke PHP-mand så kan ikke svare på så specifikke PHP spørgsmål.
Avatar billede KHHP Juniormester
19. februar 2012 - 09:59 #8
#7 Jeg har fundet ud af det. Smider du lige svar, du fandt jo løsningen.

Løsningen var at indsætte
mysql_set_charset('utf8');

mellem
mysql_select_db($database_downsgaming, $downsgaming);
$query_forside = "SELECT * FROM forside";

så koden til sidst ser sådan ud:
mysql_select_db($database_downsgaming, $downsgaming);
mysql_set_charset('utf8');
$query_forside = "SELECT * FROM forside";
Avatar billede keysersoze Guru
19. februar 2012 - 16:21 #9
svar.
Avatar billede Slettet bruger
19. februar 2012 - 17:40 #10
Ikke alle php script vil tage æøå selvom man bruger utf8. Prøv dette.

Mellermrum &nbsp;
Ø = &oslash;
Æ = &aelig;
Å = &aring;
Avatar billede keysersoze Guru
19. februar 2012 - 18:59 #11
Jo - selvfølgelig vil alle PHP scripts kunne benytte æøå, det er kun et spørgsmål om at hele applikationen og ikke kun enkelte dele af den kører UTF-8. At benytte html-entities er kun som at tisse i bukserne på en kold dag, dag varmer her og nu men vil med en vis sandsynlig ikke være så lækkert i længden.
Avatar billede Slettet bruger
20. februar 2012 - 12:28 #12
Det kommer nu an på hvordan du har lavet dit php script. Hvis der er et funktionskald til en dansk lang.fil kan du nemt bruge denne løsning.
Avatar billede keysersoze Guru
20. februar 2012 - 13:08 #13
ja - det kan du nemt gøre men det ændrer stadig ikke på at det langt fra er den bedste løsning, det skjuler kun noget mismatch med din character encoding.
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

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