30. januar 2010 - 16:32Der er
8 kommentarer og 1 løsning
UTF-8 ÆØÅ
Hej. Har en fil, som hedder showcomments.php. Den udskriver kommentarer, al efter ?id=.. til mit problem: Når kommentarene indeholder ÆØÅ, så bliver det ???.
Her er showcomments.php: <html> <head> <link href="../style.css" type="text/css" rel="stylesheet" /> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"> </head> ØØØ ÆÆÆ ÅÅÅ test <? $show = 1; include("../tilslut.php"); $sql = "SELECT id FROM member_filmcomments WHERE fID = '$_GET[id]'"; $query = mysql_query($sql); $number = mysql_num_rows($query); echo("Der er <b>".$number."</b> kommentare!<br><br>"); $hent_comments = mysql_query("SELECT * FROM member_filmcomments WHERE fID = '$_GET[id]' ORDER BY id DESC"); if(mysql_num_rows($hent_comments) == 0){ echo "Der er ingen kommentare. Vær den første :)"; }else{ while($vis2 = mysql_Fetch_array($hent_comments)) { echo "<b>"; echo $vis2["navn"]; echo " - "; echo $vis2["dato"]; echo "</b><br>"; $besked = htmlspecialchars($vis2['kommentar'],ENT_QUOTES); $besked = str_replace(":)","<img src='../b/glad.gif'>",$besked); echo nl2br($besked); echo "<br><br>"; } } ?>
Det sjove er nu at hvis i kan se så har jeg smidt ind "ØØ ÆÆ ÅÅ TEST" og der vises tegnene korrekt, men det som hentes fra databasen vises ikke korrekt.
Og ja, jeg har dobbeltjekket om kommentarene i databasen indeholder rigtige ÆØÅ og er utf-8 lagret, og det gør det.
Den moderne arbejdsplads er i stigende grad afhængig af mødelokaler til at fremme samarbejde, men dette skift medfører også stigende sikkerhedsudfordringer.
Er din databases charset også sat til utf8_danish_ci, hvis dette ikke er tilfældet skal du gøre det :) - Har selv lige sat og rodet med samme problem og der hjalp dette.
Endvidere fandt jeg også ud af, at når man henter data fra mysql databasen, kan det nogle gange forekomme at forespørgslen selv laver sig om til iso-8859-1, derfor skal du gøre følgende efter du har oprettet forbindelse til din database..
$link = mysql_connect(HOST,USER,PASS) or die(mysql_error());
mysql_set_charset("utf8",$link);
//Hvor selvfølgelig husk at skifte konstanterne ud med dine rigtige data..
mvh Jeppe
Synes godt om
Slettet bruger
30. januar 2010 - 18:33#6
Tjek at din database er indkodet korrekt. Hvis den er det, kan du prøve med følgende linje (i din PHP-kode):
mysql_query('SET NAMES \'utf8\'');
Desuden, HUSK AT ESCAPE BRUGERINPUT, DA SIDEN ELLERS BLIVER UDSAT FOR SQL INJECTIONS!
#6 - Af hvad jeg kunne forstå på PHP-dokumentationen, var "SET NAMES" ikke så foretrukken mere, da den vist ikke bliver vedligeholdt længere, derfor har de vist valgt at fokusere på mysql_set_charset();
Mvh Jeppe
Synes godt om
Slettet bruger
30. januar 2010 - 23:52#8
#7, fuldstændig korrekt. Det er bare mig der er lidt uddateret.
Tusinde tusinde tak stigma. Dette løste mit problem!!
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.