07. april 2008 - 15:05Der er
2 kommentarer og 1 løsning
Problem med tegnsæt og danske bogstaver med MyQL db
Ja, dette synes næsten altid at være et irreterende problem...
Jeg har en PHP5 side der læser noget data fra en MySQL 5 database. Og når teksten indeholder æ ø eller å, vises der bare en firkant istedet med bogstaverne ffdf (dette er vist en standard boks i firefox). Databasen er oprettet i phpMyAdmin, og ALLE tegnsæt er sat til latin1_danish_ci i denne database. I databasen kan jeg se æøå ganske fint. Jeg har i sidens <head> sat tegnsættet til iso-8859-1 med kommandoen: <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> Jeg har også prøvet at skrive latin1 og latin1_danish_ci, men det giver samme resultat...
Er der nogen der ved hvor det går galt??
Jeg har min egen dedikerede webserver, med Apache2 som webserver, har dette noget at sige? Jeg ved ganske simpelt ikke om der skal laves nogle indstillinger ved apache, eller ved hjemmesiden...
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
Det er vældig fint at du bruger <meta> til at angive tegnsættet - men hvad siger serveren i den HTTP header den sender tilbage (med andre ord: bruger din browser så også det tegnsæt)? Dette vil nemlig overstyre det der står i din <meta>.
Sandsynligvis er Apache sat op til at bruge UTF-8 som standardtegnsæt (kig efter AddDefaultCharset), hvilket er årsagen til dit problem - du kan fjerne linjen for at "tvinge" scriptet/HTML'en til at angive hvilket tegnsæt det er, eller du kan bruge header() i PHP for at sende en anden HTTP header til browseren (det er dog min personlige holdning at UTF-8 er at foretrække, så måske burde du i stedet overveje at skifte tegnsæt...)
Ja, efter at kigge i oplysninger på den hentede side, kunne jeg se at der var to tegnsæt, både iso og utf8..
Det hjalp med at sætte tegsættet i headeren gennem PHP, men er det den eneste måde?
Jeg ville godt bruge UTF8, men det giver mig så problemer med et andet program jeg har lavet, som forbinder til databasen og indsætter noget data. Her duer UTF8 ikke af en eller anden grund..
Som nævnt skal du enten bruge header(), eller ændre AddDefaultCharset i din Apache's opsætning - måske er der noget i PHP's opsætning, men det mener jeg ikke.
Det smarteste ville nok være at bruge header, fordi du så får samme resultat hvis du engang skal over på en server hvor du ikke sådan lige har adgang til konfigurationen.
Grunden til at det andet program ikke kan finde ud af UTF-8, er sandsynligvis at du enten ikke fortæller serveren at forbindelsen skal køre med UTF-8 (check MySQL-manualen for det - har det ikke lige ved hånden), eller fordi du ikke sender data i det tegnsæt serveren skal bruge.
Synes godt om
Ny brugerNybegynder
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.