HTML skriver ÆØÅ det gør php fra mysql ikke.

Tags:    php

Hej folkens.
Jeg har nuppet en template fra http://www.freecsstemplates.org/ da jeg ikke er så god til at få ting flotte.

Når jeg skriver direkte i html koden er der ingen problemer jeg kan sagtens skrive Æ, Ø og Å.
Men hvis jeg forsøger at hente data fra min mysql database så laver den ? ved Æ, Ø og Å både upper og lower case.

Jeg kan sagtens tage data fra databasen med en anden template og få Æ, Ø og Å med er der nogen der har en idé om hvordan man løser det?

Her er et udsnit af den kode der henter data.

<?PHP
$db = mysql_connect("localhost", "bruger", "kode");
mysql_select_db("database", $db);
$foresp = mysql_query("SELECT tekst, forfatter FROM CA_naestespil ORDER BY id DESC");
while($data = mysql_fetch_row($foresp)){
echo "$data[0] <br><BR> opdatteret af: $data[1]";

}
?>

Jeg har ikke brugt dette forum så meget så hvis 5 points er for lidt så kan der godt handles.



Indlæg senest redigeret d. 14.02.2011 18:58 af Bruger #10185
5 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
Sorter efter stemmer Sorter efter dato
Okay jeg har fundet frem til et delvist svar nu.

Tegnsættet på den gamle side var iso det nye er utf-8.

Når jeg ændrer database coalition til utf-8 i phpmy admin gør det dog ingen forskel.



Okay det læste sig med et php edit script der ændrede bogstaverne i utf-8.



Når du nu har stillet spørgsmålet og fundet svaret, kunne du godt lige skrive svaret så andre kan se det.

Løsningen du har brugt vil jeg tro er at tilføje dette:

mysql_query("SET NAMES 'utf8'");



Det er som du selv skriver et problem imellem webserveren og mysql og deres brug af tegnsæt.

Som du skriver hjælper det ikke noget bare at ændre database coalition til UTF-8, da alle dine data i tabellerne stadig er det gamle format. Så du skal ind og ændre hver enkelt text/varchar felt.

Til Jesper, så ja, du kan gøre sådan. Men så skal mysql ind og ændre typen på dataene hver eneste gang der bliver oprettet forbindelse til mysql, og det må man ikke sige er den optimale måde. :)
Det er at få sat så ens data er UTF-8 i databasen, og webserverens tegnsæt også er UTF-8, så skulle det hele spille max.

(Hvordan du vil ændre det, er helt op til din udbyder og hvad de tilbyder af muligheder for dette)



Til Jesper, så ja, du kan gøre sådan. Men så skal mysql ind og ændre typen på dataene hver eneste gang der bliver oprettet forbindelse til mysql, og det må man ikke sige er den optimale måde. :)


Du ved da ikke om den konverterede tegnkodning før og er nu ændret til ikke at gøre det.

Man skal altid sørge for at forbindelsen bruger den tegnkodning webapplikationen bruger, uanset om databasen også gemmer i samme tegnkodning, som den bør hvis man vil have bedste performance.



t