Herzlich willkommen im Wahnsinn der Datenrepräsentation :)
Vorsicht, Betriebssystem. Vorsicht, Steuerzeichen. Vorsicht, Zeichencodierung.
Hast Du Dir schon mal angeguckt, was Du in phpmyadmin alles einstellen kannst beim CSV Export? Die Vielfalt hat gute Gründe.
-
Zeilenende:
Unixoide Betriebssysteme sind als Zeilenende-Markierung mit \n (auch Line Feed genannt, Code 0x0a) zufrieden. Windows bevorzugt \r\n (Carriage Return, LineFeed, Codefolge 0x0d 0x0a), die pre-Unix MAC OS verwendeten nur \r. Viele Windows-Programme akzeptieren mittlerweile auch Unix-terminierte Zeilen. Aber nicht zwingend alle. Ein alter Mac spuckt meines Wissens, wenn er \n bekommt. -
Feldende:
Wodurch terminierst Du Deine Felder? Durch ein Komma, ein Semikolon? Durch was anderes? CSV hieß mal "Comma Separated Values", man findet aber auch "Character Separated Values" und dann ist die Pandorabüchse offen. Komma, Semikolon, Space, Tab, wasweißichwassonst. Das muss der User, der den Export bestellt, eventuell vorgeben können. -
Trennzeichen im Feldinhalt
Was ist, wenn deine Daten einen Zeilen- oder Feldterminator als Datenzeichen enthalten. In dem Fall musst Du den Feldinhalt in Anführungszeichen setzen und HOFFEN, dass das verarbeitende Programm eine Zeilenende-Sequenz, die innerhalb der Anführungszeichen steht, nicht als Ende der Row ansieht (bin hier mit Excel schön böse reingefallen). -
Anführungszeichen im Feldinhalt
Das soll man verdoppeln, wenn's vorkommt. Aber was ist das Anführungszeichen? Ist es ' oder "? Oder was frei vorgegebenes? -
Feldnamen in Zeile 1? Das ist optional. Und sollte beim Export steuerbar sein.
-
Zeichencodierung UTF-8 als Zeichencodierung verwenden zu wollen ist löblich, aber durchaus nicht immer verwendbar. Eventuell muss man sich beim Export den Fähigkeiten des Importprogramms anpassen.
Die gute Nachricht ist diese: Wenn Du das Betriebssystem und das Programm, mit dem importiert werden soll, genau kennst, kannst Du Dir all diese Überlegungen schenken. Aber wie das so ist, wenn das Feature erstmal da ist, bekommen die Nutzer auf einmal Junge. Von daher, verbau Dir nichts.
Rolf