Avatar billede Nicklas_J Nybegynder
30. januar 2010 - 16:32 Der 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.

Håber virkelig på hjælp, sidder fast. :( Tak!

Mvh.
Avatar billede nissen2630 Novice
30. januar 2010 - 16:41 #1
Tilføj denne linie i toppen af den kode :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
Avatar billede nissen2630 Novice
30. januar 2010 - 16:43 #2
Glemte lige at dit fil skal gemmes som UTF8 Uden BOM
Avatar billede Nicklas_J Nybegynder
30. januar 2010 - 16:48 #3
Hej. Har gjort det nu, og den er allerede gemt som utf8 without bom. (bruger notepad++), får dog stadigvæk ???

Mvh.
Avatar billede nissen2630 Novice
30. januar 2010 - 17:02 #4
Prøv at læse følgende guide:
http://www.eksperten.dk/guide/1300

Der skulle være god mulighed for at det er et af de problemer du har.
Avatar billede stigma Nybegynder
30. januar 2010 - 18:29 #5
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
Avatar billede 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!
Avatar billede stigma Nybegynder
30. januar 2010 - 18:42 #7
#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
Avatar billede Slettet bruger
30. januar 2010 - 23:52 #8
#7, fuldstændig korrekt. Det er bare mig der er lidt uddateret.
Avatar billede Nicklas_J Nybegynder
31. januar 2010 - 12:57 #9
Tusinde tusinde tak stigma. Dette løste mit problem!!
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
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

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