Avatar billede Slettet bruger
06. august 2008 - 13:45 Der er 14 kommentarer

problemer med danske tegn

HEj eksperter

Jeg har nogle problemer med æøå når jeg forsøger at hente data ud fra min MySQL database.

Jeg har puttet noget data ind via phpMyAdmin, som ser helt rigtigt ud i phpMyAdmin og indeholder æøå.

Men når jeg prøver at hente det ned i en variabel i php for at få det vist på sitet, bliver tegnene lavet om til spørgsmålstegn, således: "p� st�rre"

Hvad kan jeg gøre for at ændre dette

Er der evt. en måde jeg kan søge efter æ,ø og å i hele databasen på en gang og ændre til å mv.
Avatar billede w13 Novice
06. august 2008 - 13:50 #1
Det lyder som om du har noget rod i dit tegnsæt.

Hvilket tegnsæt bruger du på siden og hvilket bruges i databasen?
Avatar billede pidgeot Nybegynder
06. august 2008 - 13:52 #2
Du har tegnsætsproblemer - der forventes UTF-8, men outputtet er Latin-1.

Da du bruger PHP, vil jeg foreslå du lige laver om på din kode så du kører queryen SET NAMES 'utf8' umiddelbart efter du opretter forbindelse til din database (forhåbentligt er der en fælles fil der indeholder det nødvendige til det formål, da det skal køres hver gang du opretter forbindelsen).
Avatar billede darrich Novice
06. august 2008 - 13:53 #3
Hvad charset er de lagret med?
Hvad charset læser du med?
Hvad charset præsenterer du med?
Avatar billede Slettet bruger
06. august 2008 - 14:14 #4
jeg kan umiddelbart ikke se databasens charset i phpmyadmin.

Men når jeg kigger i phpMyAdmin ser det hele fint ud :)

pidgeot: forsøger lige den løsning og ser hvad der sker
Avatar billede w13 Novice
06. august 2008 - 14:16 #5
gpq-mads>> Ja, hvis din database f.eks. bruger ISO-8859-1, så vil den vise tegnene fint.
Ligesom din side vil vise det fint, hvis den er UTF-8.

Men ligeså snart din side og databasen snakker sammen, går det galt.
Avatar billede Slettet bruger
06. august 2008 - 14:21 #6
hvordan gør jeg min side til utf-8. i meta-tagsne?
Avatar billede Slettet bruger
06. august 2008 - 14:21 #7
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Avatar billede Slettet bruger
06. august 2008 - 14:21 #8
det er hvad der står nu
Avatar billede w13 Novice
06. august 2008 - 14:22 #9
Du skal også sætte din sides encoding til UTF-8 så.

(Men hvis databasen ikke er UTF-8, hjælper det jo intet.)

Hvor du skal sætte encoding, afhænger helt af det program, du programmerer i.

Hvis du f.eks. bruger Notesblok, skal det gøres i Gem Som-dialogboksen. Men ellers så bare find "Encoding" et sted i programmet.
Avatar billede w13 Novice
06. august 2008 - 14:22 #10
Både Meta-tagget og Encoding skal nemlig være sat!
Avatar billede pidgeot Nybegynder
06. august 2008 - 14:24 #11
Det gør du sådan, MEN - HTTP-headeren tager prioritet over <meta>. Hvis du med den <meta> får at vide du kører det andet, så er det enten din webserver der er sat forkert op, eller også sender dine server-side scripts noget forkert (jeg hælder mest til det sidste). De skal sende en HTTP header der svarer til <meta>'en - header('Content-Type: text/html;charset=utf-8') i PHP.
Avatar billede Slettet bruger
06. august 2008 - 14:30 #12
har prøvet at sætte header('Content-Type: text/html;charset=utf-8') ind i toppen af mit php-script, men det gjorde ingen forskel :(
Avatar billede w13 Novice
06. august 2008 - 14:31 #13
Så _er_ det måske databasen, der er ISO-8859-1?
Avatar billede Slettet bruger
06. august 2008 - 14:33 #14
har desuden forsøgt:

    function connect($sHost, $sName, $sUser, $sPass)
    {
        $this->_hLink = mysql_connect($sHost, $sUser, $sPass);
        if (! $this->_hLink)
            $this->_addError('db.connect', array($sHost, $sUser, $sPass), true);
        if (! mysql_select_db($sName, $this->_hLink))
            $this->_addError('db.select_db', array($sHost, $sName, $sUser, $sPass), true);
           
        mysql_query("SET NAMES 'utf8'"); // dette er ændringen!
        return true;
    }
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
Computerworld tilbyder specialiserede kurser i database-management

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