Avatar billede kjeldsted Novice
26. juni 2008 - 00:09 Der er 11 kommentarer og
1 løsning

Forvrring over encoding type

Hej alle.

Jeg sidder og bliver godt og grundigt forvirret over hvilken encoding type jeg skal bruge på min side. Vælger jeg utf-8 kan special tegn (som [æøåé] o. lign.) ikke vises når der er tale om MySQL forespørgelser. Derimod vises tegnene jeg har skrevet i HTML koden fint.

Vælger jeg derimod iso-8859 er det lige modsat.

Jeg kan oplyse at MySQL tegnsættet står til utf-8 og at Kollation (Collation) på MySQL tabellen står til latin1_danish_ci

Hvad gør jeg galt?
Avatar billede jakobdo Ekspert
26. juni 2008 - 08:35 #1
Sæt Kollation til utf-8.
Og når du gemmer data i din mysql, indtaster du dem så via phpmyadmin ?
Eller indtaster du dem via en utf-8 side og uploader/gemmer derfra ?
Avatar billede kjeldsted Novice
26. juni 2008 - 10:45 #2
Hm. Det er et godt spørgsmål, men jeg kan se at siden hvor jeg indtaster dataene står til iso-8859.

Men jeg prøver at ændre Kollation..
Avatar billede jakobdo Ekspert
26. juni 2008 - 10:46 #3
Hvis siden står til iso, så skal den jo også være utf-8, da du skal køre samme tegnsæt hele vejen rundt.
Avatar billede kjeldsted Novice
26. juni 2008 - 11:00 #4
Jep. Det kan der være noget i. Den brude jo også stå til utf-8, ved ikke hvad jeg tænke for 1½ år siden da jeg lavede systemet.

Men vil det være muligt at gøre et eller andet, så jeg ikke skal sidde og skrive oplysninger om de 241 brugere ind igen..?
Avatar billede jakobdo Ekspert
26. juni 2008 - 11:14 #5
Enten skal du lave et script, som trækker alle data ud.
Konvertere med: utf8_encode() og gemmer dataen igen.
Avatar billede kjeldsted Novice
26. juni 2008 - 11:20 #6
Hm, så må jeg jo gøre det. Ja, man lærer vel af sine fejl.
Avatar billede jakobdo Ekspert
26. juni 2008 - 11:46 #7
Så længe man lærer af dem, er det jo godt nok.
Avatar billede kjeldsted Novice
26. juni 2008 - 11:53 #8
Det er jo det. Hm. Kan du svarer mig på hvordan følgende kode kan lave alle fornavne om til 0 undtagen 2 af de 241...?:

<?
include("../config.php");
$result = mysql_query("SELECT * FROM xelever ORDER BY id ASC");
while($row = mysql_fetch_array($result))
    {
    $id = $row['id'];
    $fornavn = utf8_encode($row['fornavn']);
    $efternavn = utf8_encode($row['efternavn']);
    $adresse = utf8_encode($row['adresse']);
    $city = utf8_encode($row['city']);
    $tekst = utf8_encode($row['tekst']);
    mysql_query("UPDATE xelever SET fornavn='$fornavn' AND efternavn='$efternavn' AND adresse='$adresse' AND city='$city' AND tekst='$tekst' WHERE id='$id'");
    }
?>

Og desuden så skriver den stadig ikke æøå.
Avatar billede jakobdo Ekspert
26. juni 2008 - 12:03 #9
UPDATE, skal den ikke skrives som:

UPDATE xelever SET fornavn='$fornavn', efternavn='$efternavn', adresse='$adresse', city='$city', tekst='$tekst' WHERE id='$id'
Avatar billede kjeldsted Novice
26. juni 2008 - 12:15 #10
Nå, ja for pokker da... Men så virker det endelige. Mange, mange tak jabokdo. Smid et svar så du kan få en lille belønning ;-)
Avatar billede jakobdo Ekspert
26. juni 2008 - 12:23 #11
Svar!
Avatar billede jakobdo Ekspert
26. juni 2008 - 12:41 #12
Takker for point.
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