Wie kodiert Excel eine CSV-Datei?
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.

So sind CSV-Dateien aus Excel kodiert
- CSV-Dateien (DOS-Format) sind
IMB850kodiert
- CSV-Dateien (kommasepariert) sind
ISO-8859-15kodiertSo kann man seine CSV-Datei mit
iconv('ISO-8859-15', 'UTF-8', $content);zu UTF-8 sauber umwandeln.Sachen gibts…
1 Julian Schrader schrieb am 05. Dezember 2005 (20:12 Uhr)
2 macx schrieb am 06. Dezember 2005 (07:12 Uhr)
3 ralph schrieb am 06. Dezember 2005 (12:12 Uhr)
4 Julian Schrader schrieb am 06. Dezember 2005 (19:12 Uhr)
5 macx schrieb am 07. Dezember 2005 (08:12 Uhr)
6 ralph schrieb am 15. Dezember 2005 (08:12 Uhr)
7 macx schrieb am 15. Dezember 2005 (09:12 Uhr)
8 Gorzbach Urstett von Adelbach schrieb am 27. November 2007 (17:11 Uhr)
9 macx schrieb am 27. November 2007 (17:11 Uhr)
10 Otto schrieb am 16. Januar 2008 (16:01 Uhr)
11 Max schrieb am 15. Mai 2008 (19:05 Uhr)
12 OliP schrieb am 06. Oktober 2009 (12:10 Uhr)