Indsatte database værdier ÆØÅ vises som ? på webside

Tags:    databaser

Hej,

jeg har et encoding problem som længe har jagtet mig :) Jeg fandt ud af at fikse det med min editor at jeg skulle bruge UTF-8 encoding der og på mit website så specielle tegn kan vises som f.eks. æøå

Men jeg er nu stødt på det problem at når jeg indsætter ting i databasen vises de æøå i databasen men når jeg vil vise dem på siden igen vises de som ? og det er møg irriterende, jeg har prøvet at sætte min database charset som utf8_unicode_ci og slette og sætte det hele ind igen men jeg synes ikke det virker.

Nogen forslag?
Med venlig hilsen
Buch



utf8_general_ci

er den du bruger?

men hvilken database bruger du?
jeg har lige testet min side, som kører over one.com og der er ingen problemer med det



Hvis du laver æ, ø og å om til æ, ø og å, så burde det virke.

æ = æ
ø = ø
å = å
Æ = Æ
Ø = Ø
Å = Å

Du kan gøre det inden du putter værdierne i din database, men jeg foreslår, du gør det efter.



Indlæg senest redigeret d. 19.07.2009 22:44 af Bruger #8985
Siden du siger du bruger charset utf8_general_ci antager jeg at du bruger MySQL?

På nogle webhosts vil du bemærke at selvom dit PHP-dokument er i UTF8 og alle dine data i MySQL er i UTF8, vil du stadig få det ud som de ulæselige tegn som du nævner. Det kan skyldes flere ting, men det jeg oftest har oplevet er at MySQL forbindelsens tegnsæt er sat til noget andet end UTF8. Det betyder reelt set at MySQL laver dine UTF8 felter om til et andet tegnsæt, inden det afsender dataen til dit PHP script. Løsningen du kan bruge til at løse dette kan ses på denne side: http://dev.mysql.com/doc/refman/5.0/en/charset.html . Det kan dog opsummeres til at du som det første, når du har oprettet din MySQL forbindelse, afsender en query med indholdet:
Fold kodeboks ind/udKode 

Dette vil sætte forbindelsens charset til UTF8, og fortælle SQL serveren at den skal sende resultater tilbage i UTF8.

En anden mulighed kunne være at din browser viser siden i en anden encoding end UTF8. Dette kan ske hvis der ikke er sat et meta tag eller en HTTP header, der beskriver hvilken encoding der er tale om.



Indlæg senest redigeret d. 20.07.2009 11:33 af Bruger #2330
Mange tak The-Freak, dit forslag virkede helt perfekt :D Og helt fikset med en linje kode det var da dejligt :D Men lige når jeg læser på det link der at det skal udføres efter connection menes der bare mysql_query("SET NAMES UTF8"); som jeg har gjort nu eller er der en anden smart måde?

Igen mange tak og god dag!



Indlæg senest redigeret d. 20.07.2009 18:33 af Bruger #13723
Såvidt jeg ved er der ingen smartere måde at gøre det på.



t