Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

Falsche Sonderzeichen beim Senden von Daten

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
smilla
PostRank 5
PostRank 5
Beiträge: 268
Registriert: 28.07.2008, 19:14

Beitrag von smilla » 04.01.2009, 13:19

Hi,

ich stellte meine Frage schon vor ein paar Tagen in einem anderen PHP Forum, bekam dort aber keine Antwort. Da hier auch einige Profis sind, weiß hier vielleicht jemand rat.

ich habe ein Statistik Script für unseren Shop programmiert, wo man sich das Ergebnis als .csv exportieren kann. Hier erstmal mein code:

Code: Alles auswählen

// export
if (isset($_POST['action']) && $_POST['action'] == "export")
{
   $handle = fopen ("export.csv", "w+");
   fwrite($handle, implode("\n", $_POST['export']));
   fclose($handle);
   
   header("Content-Type: text/html; charset=ISO-8859-1");
   header("Content-Type: application/octet-stream");
   header("Content-Disposition: attachment; filename=\"export.csv\"");
   header("Content-Transfer-Encoding: ISO-8859-1\n");
   
   // Datei ausgeben.
   readfile("export.csv");
   exit;
} 
Wenn ich mir die Datei senden lasse, werden Zeichen wie ö falsch dargestellt. Wenn ich es nicht über die Datei laufen lassen, sondern die Daten via echo sende, habe ich das gleiche Problem.

Wenn ich die Datei auf dem Webserver öffne (Ich speichere die ja ab), dann sind die Sonderzeichen korrekt.

Ich habe allesmögliche durchprobiert. Habe auch die Daten direkt gesendet oder Conent-Transfer-Encoding rumprobiert, mit utf8_decode gearbeitet. Ich habe es aber nicht zum laufen bekommen. Ich arbeite immer unter ISO-8859-1.

Hat jemand eine Idee, was ich ändern muss damit der Code richtige Sonderzeichen schreibt? Meiner Meinung nach gehen die bei der Übertragung kaputt, denn das abgespeicherte File ist ja korrekt.

smilla[/code]

Anzeige von ABAKUS

von Anzeige von ABAKUS »

Content Erstellung von ABAKUS Internet Marketing
Ihre Vorteile:
  • einzigartige Texte
  • suchmaschinenoptimierte Inhalte
  • eine sinnvolle Content-Strategie
  • Beratung und Umsetzung
Jetzt anfragen: 0511 / 300325-0

bloddy newbie
PostRank 4
PostRank 4
Beiträge: 171
Registriert: 18.05.2006, 20:15

Beitrag von bloddy newbie » 04.01.2009, 13:46

Hallo,

in welcher Kodierung wird der POST Request denn gesendet? Vermutlich in UTF8?

warum lässt du die Daten dann nicht einfach UTF8 sein? Gibt es Probleme mit dem Import im Folgeprogramm?

???? was soll das bei ner CSV Datei?

Code: Alles auswählen

header("Content-Type: text/html; charset=ISO-8859-1");
???? auch nicht viel besser

Code: Alles auswählen

header("Content-Type: application/octet-stream");
Versuchs mal damit und lass den ganzen ISO Schnickschnack raus:

Code: Alles auswählen

header("Content-Type: text/csv; charset=UTF-8");
Bemerkung: text/csv setzt natürlich voraus, dass der Inhalt der Ausgabe auch dem RFC entspricht!

noch was Unklares - liegt in der Post Variable 'export' ein Array vor? Bei einem mehrzeiligen Textfeld (textarea) wäre das so nicht korrekt. Aber wird wohl ein Array sein ;-).

Code: Alles auswählen

fwrite($handle, implode("\n", $_POST['export'])); 
Grüße

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag