Tabellen, Zeichenkodierung, Spaltentrenner und Excel - Was ist CSV?

Tabellen, Zeichenkodierung, Spaltentrenner und Excel - Was ist CSV?

Wem ist das nicht schon mal passiert? Man importiert eine Daten-Tabelle in eine Anwendung und sieht anschließend – nur noch Zeichensalat. Als kleiner Trost: Es geht nicht nur Ihnen so. Denn die Aufgabe, tabellenartige Daten zwischen verschiedenen Anwendungen auszutauschen, war schon immer eine der größten Herausforderungen der Informatik.

Ein Format, das für diesen Austausch bereits seit Jahrzehnten verwendet wird, ist das CSV Format. Da uns hierzu in regelmäßigen Abständen Fragen erreichen, widmen wir dem Thema heute einen eigenen Artikel: Wofür steht CSV? Was is der UTF-8 Zeichensatz? Und wie kriege ich sogar Excel dazu, beim Import einer Tabelle den richtigen Zeichensatz zu verwenden?

Vorweg: Wenn Sie gerade akute Unterstützung beim Import Ihrer CSV-Datei in Excel brauchen, schauen Sie sich hierfür dieses kurze Video an, in dem erklärt wird, wie Sie Ihre Datei fehlerfrei in Excel importieren. Für alle anderen nun eine kompakte Portion Basis-Wissen zu Aufbau, Geschichte und Import von CSV-Dateien.

CSV: Durch Komma getrennte Werte


Was heißt eigentlich CSV? Das Dateiformat CSV steht für englisch ‚comma separated values‘, was wörtlich übersetzt ‚durch Komma getrennte Werte‘ heißt. Was die Bezeichnung bereits deutlich macht: Entscheidend ist der Aufbau der Datei. Auf Nicht-Informatiker-Deutsch heißt das: Daten einer CSV-Datei sind immer auf ganz bestimmte Art und Weise strukturiert. Die Anordnung der Daten folgt dabei einfachen Regeln:

  • Jede Zeile der Tabelle wird durch eine Zeile in der Textdatei abgebildet
  • Jede Spalte wird durch ein Komma von der nächsten getrennt

Eine Tabelle mit Kundendaten könnte also zum Beispiel so aussehen:

Karl,Karlson,Lerchenweg 6,22001,Hamburg
Jens,Jensen,Wiesendamm 4,20103,Hamburg

Hierbei ist es gängig, die erste Zeile für Spaltenüberschriften zu nutzen – ganz einfach, um zu wissen, welche Inhalte in welcher Spalte aufgeführt sind. Bei unserem Beispiel:

Vorname,Nachname,Adresse,PlZ,Stadt
Karl,Karlson,Lerchenweg 6,22001,Hamburg
Jens,Jensen,Wiesendamm 4,20103,Hamburg

Wenn Sie hierbei Werte darstellen wollen, die selber ein Komma enthalten, ist der standardkonforme Weg, dies zu lösen, die Einfassung der Werte in Hochkommata:

"Vorname","Nachname","Adresse","PlZ","Stadt"
"Karl","Karlson","Lerchenweg 6","22001","Hamburg"
Jens","Jensen","Wiesendamm 4","20103","Hamburg"

Auf diese Weise können innerhalb der Werte Kommata und sogar Zeilenumbrüche verwendet werden, ohne dass das Format der Tabelle durcheinander gerät. Soviel erst einmal zur Struktur einer CSV-Datei.

Die Textdatei: Lesbar für alle Programme


Ebenfalls wichtig für das Verständnis einer CSV-Datei: Es handelt sich um eine Textdatei. Aber Achtung: Mit einer Textdatei ist in der Fachsprache KEINE Datei gemeint, die einen lesbaren Text präsentiert – wie z. B. eine Word- oder OpenOffice-Datei. Viele Dateien, die textuelle Inhalte enthalten – wie Word-, Excel und Pdf-Dateien – sind nämlich streng genommen keine reinen Textdateien. Sie enthalten neben dem Inhalt für die Darstellungsprogramme optimierte Anweisungen zur Formatierung. Diese sind im Vergleich zum Text selbst nicht standardisiert und außerdem programmabhängig.

Diese Definition jetzt aber mal dahingestellt, ist zum Verständnis vor allem eins wichtig: Das CSV-Format basiert auf einer Textdatei. Und der Charme dieses Formats liegt vor allem: in seiner Einfachheit. Denn prinzipiell ist es jedem Programm möglich, die Daten einer Textdatei auszulesen. Da fragt man sich nur: Warum treten dann trotzdem gerade beim Auslesen, sprich Öffnen von CSV-Dateien, so häufig Probleme auf?

Die Sache mit den Nullen und Einsen


Kurz gesagt: Weil oft weder Computer noch User wissen, mit welchem der vielen verschiedenen Zeichensätze sie diese Dateien öffnen sollen. Aber eins nach dem anderen. Wie fast jeder weiß, der sich schon einmal mit Computern auseinandergesetzt hat, verstehen diese ausschließlich Nullen und Einsen. Textdateien stellen hiervon keine Ausnahme dar. Auch diese werden als eine lange Kette von Nullen und Einsen gespeichert. Das kann man sich in etwa so vorstellen: 01000001010000100100001001000001

Stellen wir uns also vor, es handelt sich bei unserem Beispiel um eine Textdatei, die aus einem Programm exportiert wurde und nun in ein anderes Programm importiert werden soll.

Um diese Kette wieder als Text darzustellen, nimmt ein Computer verschiedene Schritte vor. Als Erstes zerteilt er die Kette in definierte Blöcke – in unserem Beispiel sind diese achtstellig:

01000001010000100100001001000001

01000001 01000010 01000010 01000001

Im nächsten Schritt wird nun eine Tabelle – ein sogenannter Zeichensatz – herangezogen, in der jeder achtstelligen Zahlenkombination eine Zahl aus dem Dezimalsystem sowie ein bestimmtes Zeichen zugeordnet ist. Welche Zahl und welches Zeichen das ist, hängt dabei vom jeweiligen Zeichensatz ab.

In unserem Beispiel verwenden wir den Zeichensatz ‚ISO 8859-1‘. Hiernach würden den achtstelligen Blöcken folgende Zahlen zugeordnet:

01000001 01000010 01000010 01000001
     65             66             66            65

Im letzten Schritt wird also jeder Zahl ein Zeichen, sprich ein Buchstabe zugeordnet. Da im Zeichensatz ‚ISO 8859-1‘ die 65 für das ‚A‘ und die 66 für das ‚B‘ steht, würde die oben stehende Kette aus Nullen und Einsen der Zeichenkette ‚ABBA‘ entsprechen. Bei der Interpretation der Zeichenkette mit einem anderen Zeichensatz würde allerdings möglicherweise ein ganz anderes Wort herauskommen – und das ist genau die Schwierigkeit.

Zu guter Letzt also die wichtigste Frage: Warum gibt es überhaupt so viele unterschiedliche Zeichensätze – und woher weiß man, welchen man auswählen soll, damit der Text in einer für uns verständlichen Form dargestellt wird, sprich mit unseren Buchstaben, Sonderzeichen etc.?

Von ISO 8859-1 zu UTF8: Die Geschichte der Zeichensätze


Der Zeichensatz 'ISO 8859-1' wurde in einer Zeit erfunden, in der Speicherplatz noch ein sehr kostbares Gut war. Deshalb gab es damals lediglich 256 Zeichen, die äquivalent zu den achtstelligen Blöcken aus Nullen und Einsen waren. Mit diesen 256 Zeichen konnten aber z. B. weder ostasiatische noch arabische Zeichen abgebildet werden, d.h. die Darstellung von Zeichen war sehr begrenzt - und ist es bis heute.

Seitdem hat die Entwicklung von Speichermedien einen Quantensprung gemacht: Es ist schon lange kein Platzproblem mehr, Textdateien in Zeichensätzen zu speichern, die jedes erdenkliche Zeichen enthalten. Der Zeichensatz UTF-8 ist heutzutage am weitesten verbreitet und wird weltweit zur Interpretation von Texten aller Sprachen und mit allen Zeichen verwendet.

Dennoch gibt es nach wie vor Programme, die nicht automatisch den UTF-8 Zeichensatz zur Interpretation von CSV-Dateien verwenden. Und das ist genau das Problem, was viele User im Alltag haben: Denn der Computer, der eine Textdatei bestehend aus Nullen und Einsen auf seiner Festplatte findet und auslesen möchte, weiß oft nicht, welchen der Zeichensätze er zur Interpretation verwenden soll - und der User weiß es genau so wenig.

Genau dieses Problem tritt häufig beim Import von CSV-Dateien mit Microsoft Excel auf. Denn die meisten Windows-Computer gehen nach wie vor davon aus, dass eine CSV-Datei einen Text mit dem sehr alten 'ISO 8859-1'-Zeichensatz enthält. Und wenn die Datei dann mit dem falschen Zeichensatz interpretiert, sprich geöffnet wird, gibt es gern mal Zeichensalat.

Um bei Datenexporten aus Fortytools möglichst viele Zeichen (auch unterschiedlicher Sprachen etc.) abbilden zu können, verwenden wir standardmäßig den UTF-8 Zeichensatz. Wenn Sie also eine Kundendatei aus unserer Anwendung exportieren und diese anschließend in Excel öffnen wollen, müssen Sie den UTF-8 Zeichensatz auswählen, um die Zeichen korrekt zu übernehmen.

Soviel erstmal aus unserem Einmaleins der Informatik Wir hoffen, ein wenig Licht ins Dunkel der CSV-Problematik gebracht zu haben, sind aber bei Fragen hierzu trotzdem immer für Sie da.

Über den Autor

Bewertet mit durchschnittlich
4.0
Sternen von
70
Lesern.

fortytools by zvoove für Ihre Branche

No items found.

Jetzt 30 Tage kostenlos und unverbindlich testen

Alle Funktionen stehen uneingeschränkt zur Verfügung. Keine Software-Installation, keine Probleme mit Updates. Einfach via Browser Einloggen und fertig. Von jedem internetfähigen Gerät.
Heute kostenlos testen!
Nutzerbewertung: 4,8 von 5 Sternen