30. juli 2010 - 11:12Der er
11 kommentarer og 1 løsning
PHP + json encode æøå
Hej, Jeg sider med et lille problem som i sikkert har hørt om flere gange , så her kommer det.
Jeg har en php kode som skal levere en json objekt som skal hentes fra et andet sted. Jeg henter data fra en mysql database om sætter det i et string-array og derefter encoder jeg det til json. Men alle de strenge som indeholder æøå bliver til "null". 'Koden er som følger. <?php include 'config.php'; include 'opendb.php';
$result = mysql_query("SELECT * FROM Json "); while($row = mysql_fetch_array($result)){ $arr[] = array('id'=>$row[Navn]); echo $row[Navn]; // Kun til fejlsøgning ( fjernes ) }
echo json_encode($arr); mysql_close() ?>
Output : ( Jeg har sat "" om navne så det er lidt lettere at se) "Søren Primdal" "Jan Søe" "Helle Skov" Primdal" "Henrik Sørnsen" "Søren Kirkegaard" "Svend Larsen" "Katja K" "Lars Christiansen"
Man kan ikke lave websider i dag uden at have styr på tegnsæt. Derfor spørger jeg om hvilket tegnsæt du bruger - tilsyneladende har du brugt ISO-8859-1 - hvilket kan være ok, selv om UTF-8 oftere er et bedre valg.
Så du må vælge om du vil lave alt om til UTF-8 - eller køre videre med det lille hack. Eller bruge en anden metode til at lave en JSON encoding.
Helt enig, jeg tror også at det her her problemer ligger, det lyder som en god ide at definere det hele som UFT-8. ( Noget som jeg ikke har været obs på før. )
Jeg ved ikke om det har nogen betydning... men php koden oven for er den eneste kode der er på hele hjemmesiden. Da det skal bruges som et http request.
Vil det sige at jeg skal konvertere de strenge jeg henter til uft-8 inden jeg encoder den til json ..... ?
he he ... jeg er vist kommet ud hvor ikke plejer at befinde mig.... så med fare for at blive til grin kommer hvad jeg ville tro kunne fungere. ( kompletkode ) <?php include 'config.php'; include 'opendb.php';
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.