Wie kodiert Excel eine CSV-Datei?

05. Dezember 2005 Bisher 12 Kommentare

Heute hatte ich wieder mal die zweifelhafte Ehre, mich mit den Eigenheiten von Microsoft-Programmen rumzuschlagen. Ich wollte eine CSV-Datei aus Excel via php einlesen, die Daten verarbeiten und mit der Datenbank synchronisieren. Die Ausgabe sollte selbstverständlich UTF-8 sein. Damit die Umlaute nicht flöten gehen, musste ich aber erst einmal rausfinden, wie Excel die CSV-Dateien kodiert.

Die fgetcsv()-Funktion von php liest mir die CSV-Datei ein, doch zunächst nutze ich file_get_contents(), um den Inhalt der CSV-Datei ungefiltert an den Browser auszuliefern. Mit dem Firefox habe ich dann die Ausgabekodierung im Menü geändert und solange umgeschaltet, bis ich die Umlaute lesen konnte. So konnte ich die Zeichenkodierung ablesen.

Zeichenkodierung in Firefox

So sind CSV-Dateien aus Excel kodiert

  • CSV-Dateien (DOS-Format) sind IMB850 kodiert
  • CSV-Dateien (kommasepariert) sind ISO-8859-15 kodiert

    So kann man seine CSV-Datei mit iconv('ISO-8859-15', 'UTF-8', $content); zu UTF-8 sauber umwandeln.

    Sachen gibts…

Kommentare

Einen eigenen Kommentar schreiben

  1. 1 Julian Schrader schrieb am 05. Dezember 2005 (20:12 Uhr)

    Danke f

  2. 2 macx schrieb am 06. Dezember 2005 (07:12 Uhr)

    Mein Kurztest ergab nichts Gutes. Zumindest mit der Mac-Version von Ecxel hab ich statt Umlaute gro

  3. 3 ralph schrieb am 06. Dezember 2005 (12:12 Uhr)

    Das ist ja noch gar nix. Ich hab mal mit php eine csv-Datei erstellt, und wollte sie anschließend mit Excel öffnen. Absturz! Ich hab mich totgesucht nach den Ursachen, und schließlich lag es daran, dass die erste Spalte den Titel “ID” hatte. Nachdem ich es in “NR” geändert hab liefs…

  4. 4 Julian Schrader schrieb am 06. Dezember 2005 (19:12 Uhr)

    Wie wäre es denn, wenn die Firma Winzigweich das mal reparieren würde?!? Es kann doch nicht sein, dass man eine Spalte nicht “ID” nennen kann – das braucht man doch überall! Und ISO-8859-15 Daten sind ja auch nicht unbedingt up-to-date…

  5. 5 macx schrieb am 07. Dezember 2005 (08:12 Uhr)

    Noch erschreckender finde ich IMB850 ode zumindest die Tatsache, dass Excel zwar unterschiedlich kodiert, aber dem User nicht die Möglichkeit läst, die Kodierung manuell festzulegen.

  6. 6 ralph schrieb am 15. Dezember 2005 (08:12 Uhr)

    Achja, nochmal zu dem ID-Problem: Der Fehler funktioniert unter Mac und Windows, und ich habe ihn mittels dieses komischen Assistenten vor ca. einem Jahe an MS übermittelt. Tritt aber weiterhin auf beiden Systemen mit den neusten Service Packs auf…

  7. 7 macx schrieb am 15. Dezember 2005 (09:12 Uhr)

    Microsoft ignorierte bisher seine User. Bisweilen Typisch.

  8. 8 Gorzbach Urstett von Adelbach schrieb am 27. November 2007 (17:11 Uhr)

    haha, schon witzig gemacht diese Seite, wirklich eine klasse Stück Satire!

    Das ist aber auch wirklich eine ganz typische Sache, die man zu oft findet im Netz – irgendwelche Pappnasen, die zu irgendeinem Fachthema einfach nur Müll absondern, sich wie die Mega-Experten vorkommen, aber dann mit Ihrer Webseite unter Beweis stellen, dass sie von nix ne Ahnung haben!

    Genau dieses absonderliche Dumpfbacken-Verhalten auf so feinsinnige Weise hier zu parodieren, indem Du eine Seite mit Informationen zu Umlauten mit einer grossen Menge HTML-Codierungsfehlern bestückst, so dass genau diese Umlaute verloren gehen, ist wirklich schon eine klasse Idee! Köstlich!

  9. 9 macx schrieb am 27. November 2007 (17:11 Uhr)

    Du hast den Arsch nicht in der Hose hier dich mit deinen Namen einzutragen? Das ist echt arm.

  10. 10 Otto schrieb am 16. Januar 2008 (16:01 Uhr)

    Danke, die Info, dass kommaseparierte CSV-Dateien ISO-8859-15 kodiert sind, haben mein Problem gelöst und sind mit Numbers problemlos weiter zu bearbeiten.

  11. 11 Max schrieb am 15. Mai 2008 (19:05 Uhr)

    Vielen Dank!

    Hatte bis jetzt genau das gleiche Problem
    und bin in Zeitdruck. Exakt die Lösung, die ich brauchte. Super!

    Max

  12. 12 OliP schrieb am 06. Oktober 2009 (12:10 Uhr)

    Toll!

    Stunden lang mit genau diesem Problem rumgeschlagen.
    Deine Loesung war genau das was ich brauchte!

    Perfetto!

Antwort schreiben

Kommentare neuer Teilnehmer werden auf Grund von hohem SPAM-Aufkommen zunächst von mir freigeschaltet, bis sie online erscheinen. Textile kann benutzt werden.

(wird nicht veröffentlicht)