Avatar billede straszek Praktikant
23. september 2008 - 09:09 Der er 25 kommentarer og
1 løsning

forsat bøvl med danske tegn

Øvbø,

Jeg bliver ved med at have problmer med æøå. Jeg skal lave en txt fil med nogle adresse oplysninger. txt filen bliver lavet af nedenstående php-script, og data kommer fra en database hvor data er gemt i kollation latin1_danish_ci. alligevel bliver æøå til noget mærkeligt i txt filen.

Er der nogen der kan hjælpe mig med en skudssikker metode til at få det til at virker.

$aa=utf8_encode($row[delivery_name]);
$bb=utf8_encode($row[delivery_street_address]);
$cc=utf8_encode($row[delivery_suburb]);
$dd=utf8_encode($row[delivery_city]);



$str = "\"$row[orders_id]\",\"$aa\",\"$bb\",\"$cc\",\"$row[delivery_postcode]\",\"$dd\",\"$landekode\",\"$row[customers_telephone]\",\"$row[customers_email_address]\",\"11\",\"Tøj\""; 


$file="edisoft/$row[orders_id]";
$file .=".txt";

$fp = fopen($file,"w");
fwrite($fp, $str);
fclose($fp);
Avatar billede w13 Novice
23. september 2008 - 09:16 #1
latin1_danish_ci svarer til ISO-8859-1, så det skal du nok rette til UTF-8 for at spare dig selv for al besværet. Der kommer intet godt ud af at sidde og rode med forskellige tegnsæt.
Avatar billede straszek Praktikant
23. september 2008 - 09:20 #2
Jeg kan ikke rette det i database - det er et stor shop-system, og jeg kan ikke overskue de konsekvenser det kunne få
Avatar billede w13 Novice
23. september 2008 - 09:23 #3
utf8_encoder du ligeså snart det hentes ud fra db?
Avatar billede straszek Praktikant
23. september 2008 - 09:50 #4
Ja, jeg henter data sådan:
$resultat = mysql_query("Select * from orders WHERE orders_id='$ORDRENR' AND xml='0' ") or die(mysql_error());
$row = mysql_fetch_array($resultat);
$aa=utf8_encode($row[delivery_name]);
$bb=utf8_encode($row[delivery_street_address]);
$cc=utf8_encode($row[delivery_suburb]);
$dd=utf8_encode($row[delivery_city]);



$str = "\"$row[orders_id]\",\"$aa\",\"$bb\",\"$cc\",\"$row[delivery_postcode]\",\"$dd\",\"$landekode\",\"$row[customers_telephone]\",\"$row[customers_email_address]\",\"11\",\"Tøj\"";


$file="edisoft/$row[orders_id]";
$file .=".txt";

$fp = fopen($file,"w");
fwrite($fp, $str);
fclose($fp);
Avatar billede erikjacobsen Ekspert
23. september 2008 - 10:00 #5
Hvis du kigger på din tekst fil som iso-8859-1, så vil den se "mærkelig" ud, når æøå står med utf-8. Så hvordan kigger du på den?
Avatar billede straszek Praktikant
23. september 2008 - 10:12 #6
Jeg kigge på den i min editor (bbedit) - her ser den fin ud kigge jeg på den i TextEdit (notpad ligende mac ting) så er der problemer med æøå, og programmet som skal modtage filen, et fragt system, har også problemer med at læse æøå.


Supporten til fragt programmet mener der er kommet "ANSI tegn" med i filen, og supporten skriver også at "når jeg kopier jeres .txt indhold til en ny .txt fil og importerer den inde i Consignor, så kører de fint igennem systemet, men jeg kan ikke kør jeres originale filer igennem"
Avatar billede erikjacobsen Ekspert
23. september 2008 - 10:26 #7
"problemer med æøå" - i hvilken betydning.

Jeg kender ikke dine editorer, men det er mere: hvilket tegnsæt forventer dine editorer at filerne har? Og fylder et æøå-tegn een byte eller 2 bytes (sådan et nørd-agtigt check...)?
Avatar billede straszek Praktikant
23. september 2008 - 10:32 #8
Problemer i den betydning at de ikke vises korrekt, de vises som f.x. ö , i den fil der bliver lavet, og som skal importeres i fragt systemet, Consignor.

Hvilket tegnsæt mine editore bruger er vel ligemeget? - det drejer sig om at få lavet en fil hvor æøå vises som æøå

Et eksempel på en fil kan ses her http://www.rosemunde.dk/webshop/catalog/edisoft/3888.txt
Avatar billede erikjacobsen Ekspert
23. september 2008 - 10:36 #9
ø'et i søren er som utf-8, mens ø-et i tøj er som i iso-8850-1

"en fil hvor æøå vises som æøå" - det giver ingen mening uden også at fortælle hvilket tegnsæt disse bogstaver er repræsenteret i.
Avatar billede erikjacobsen Ekspert
23. september 2008 - 10:37 #10
Ja: iso-8859-1
Avatar billede straszek Praktikant
23. september 2008 - 10:39 #11
Nu tabt du mig; hvad vil du forslå jeg gør? - ø'et i tøj er skrevet direkte, resten kommer fra databasen
Avatar billede erikjacobsen Ekspert
23. september 2008 - 12:04 #12
Du skal finde ud af hvilke tegnsæt du bruger. Det ser ud som om din PHP-fil er gemt som iso-8859-1, og ikke utf-8, hvorved ø-et i linien:

$str = "\"$row[orders_id]\",\"$aa\",\"$bb\",\"$cc\",\"$row[delivery_postcode]\",\"$dd\",\"$landekode\",\"$row[customers_telephone]\",\"$row[customers_email_address]\",\"11\",\"Tøj\""; 

kommer som iso-8859-1
Avatar billede straszek Praktikant
24. september 2008 - 10:35 #13
For mig er det igen meget hvilket tegnsæt der bruges, man det vises æøå korrekt.

php-scriptet laver txt filerne - er det php-scriptets tegnsæt eller txt filens du mener jeg skal sætte? - og hvordan?
Avatar billede erikjacobsen Ekspert
24. september 2008 - 11:18 #14
Man kan ikke sige at øæå vises korrekt, uden samtidig at sige hvilket tegnsæt det vises som.

Jeg vil tro at du skal gemme din PHP fil som utf-8.
Avatar billede straszek Praktikant
26. september 2008 - 13:51 #15
Jeg er ved at rive håret af mig selv; Det virker ikke uanset med hvilket tegnsæt jeg gemmer filen, så ender ÆØÅæøå med at være alt andet en æøåÆØÅ
Avatar billede w13 Novice
27. september 2008 - 12:49 #16
Har du sat encoding for filerne til det rette tegnsæt?
Avatar billede straszek Praktikant
27. september 2008 - 13:19 #17
Godt spørgsmål - ved det faktisk ikke, hvordan gøres det?
Avatar billede erikjacobsen Ekspert
27. september 2008 - 14:10 #18
Du kan måske bruge utf8_encode på din $str
Avatar billede w13 Novice
27. september 2008 - 14:33 #19
Prøv f.eks. at åbne filen i Notesblok, vælg "Gem som" og sørg for, at Encoding står til UTF-8.
Avatar billede straszek Praktikant
27. september 2008 - 16:03 #20
begge dele er prøvet, uden held.

Trælst at noget så simpelt er så svært
Avatar billede straszek Praktikant
03. oktober 2008 - 14:41 #21
Har nu haft fat i support til det program der skal imporeter filerne, og dig oplyser at der kun kan importeres ascii filer - så hvis der nogen der har et bud på dette, høre jeg gerne fra jer
Avatar billede w13 Novice
03. oktober 2008 - 15:01 #22
Ok, ASCII = Iso-8859-1, så det burde løses ved at holde dit tegnsæt (og encoding) for alle filer i iso-8859-1!
Avatar billede straszek Praktikant
06. oktober 2008 - 16:38 #23
Hurra - så virker det smide nogle svar
Avatar billede w13 Novice
06. oktober 2008 - 16:38 #24
:)
Avatar billede straszek Praktikant
06. oktober 2008 - 16:51 #25
vil du have point erikjacobsen ?
Avatar billede erikjacobsen Ekspert
06. oktober 2008 - 19:05 #26
Nej tak.
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