Avatar billede jacobs12 Nybegynder
22. januar 2012 - 14:54 Der er 5 kommentarer

Omskriv ISO-8859-1 tegn fra databasen til æøå i csv fil.

Jeg har et lille problem med visning af æøå når jeg laver en csv fil med php.

Problemet er at når dataene bliver glemt i databasen bliver der brugt tegnsættet ISO-8859-1. Men jeg skal vise æøå i csv filen. (uft-8 tegn).

Min kode ser sådan her ud:

while($row = mysql_fetch_assoc($result)) {
            fputcsv($fp, $row);
        }
Jeg tænker jeg kan fikse det sådan her, men det ødelægger csv filen.

while($row = mysql_fetch_assoc($result)) {
            fputcsv($fp, rawurldecode($row));
        }

Jeg har også prøvet med mysql_set_charset('utf8',$conn); men det laver bare nogle andre tegn i csv filen.

Håber der er nogle der kan hjælpe :)
Avatar billede olsensweb.dk Ekspert
22. januar 2012 - 16:16 #1
hvilke tegnsæt anvender din side ?? ISO-8859-1 / UTF8
hvilke format er din side encodet med ??  ANSI / UTF8 (unden BOM)
hvilke format er din side gemt med ANSI / UTF8 (unden BOM)

har du prøvet at udskrive data fra db til din side ?? ser det rigtigt ud med æøå ???

prøv at utf8_encode dine data
while($row = mysql_fetch_assoc($result)) {
    fputcsv($fp, utf8_encode($row));
}

utf8_encode http://dk2.php.net/utf8_encode       

den helt rigtige løsning er selvføgelig at få rettet data format i db, så du kører utf8 (sammen tegnsæt) hele vejen rundt, alt andet er at pisse i bukserne, det varmer kun kortvarigt
Avatar billede jacobs12 Nybegynder
22. januar 2012 - 17:01 #2
Mange tak for svaret.
Det virkede desværre bare ikke. utf8_encode() stopper udskrivningen i csv filen. Ligesom rawurldecode() gør det. Det mærkelige er at jeg kan lave en replace() uden den gør det.

Jeg tror siden er gemt som ANSI / UTF8, den skriver også bre mærkelige tegn ud på siden.
Avatar billede olebole Juniormester
22. januar 2012 - 18:08 #3
<ole>

"Jeg tror siden er gemt som ANSI / UTF8" >> Det giver ikke mening  =)

Er den gemt som ANSI eller Unicode? Der er stor forskel, og det er helt afgørende for, hvilke tegn du kan bruge. Du har formodentlig selv gemt den, så du må vide, hvordan du har gemt den

/mvh
</bole>
Avatar billede olebole Juniormester
22. januar 2012 - 18:11 #4
- men jeg forstår ikke rigtig, hvad du skriver i spørgsmålet. Hvis du har æ, ø og å kodet som iso-8859-1 i databasen, hvorfor skriver du så filen ud som utf-8?
Avatar billede olsensweb.dk Ekspert
22. januar 2012 - 18:33 #5
>den skriver også bre mærkelige tegn ud på siden.
hvilke meta har du på din side ??
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
eller
<meta http-equiv="content-type" content="text/html; charset=UTF8" />

det skal svare til idet format du har gemt siden som

includerer du andre filer på siden der evt er gemt i andre tegnsæt

det burde ikke værer nødvendigt at encode, når du gemmer som csv
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