CSV-Dateien erklärt: Trennzeichen, Anführungszeichen, Kodierung und Excel
Eine CSV-Datei ist reiner Text: ein Datensatz pro Zeile, die Werte durch Kommas getrennt. Fast jede Datenbank, Tabellenkalkulation und jeder Onlinedienst kann sie exportieren, deshalb ist sie der übliche Weg, eine Tabelle von einem Programm ins andere zu bringen. Sie geht aber auch leicht schief, denn CSV war lange in Gebrauch, bevor jemand es aufschrieb, und Programme sind sich bei den Details bis heute nicht einig.
Dieser Teil der Reihe behandelt die Regeln von CSV, Probleme mit Trennzeichen und Anführungszeichen, die Werte an der falschen Stelle teilen, die Zeichenkodierung, was Tabellenkalkulationen beim Öffnen einer Datei ändern, und ein Risiko, das Sie kennen sollten, wenn Sie Daten exportieren, die andere öffnen.
Die Regeln, die CSV tatsächlich hat
Einen einzigen offiziellen Standard gibt es nicht. Am nächsten kommt RFC 4180 vom Oktober 2005, das das von den meisten Programmen verwendete Format beschreibt und den Medientyp text/csv registriert. Es ist ein informatives Dokument, kein Internetstandard, und legt diese Regeln fest:
- Jeder Datensatz steht in einer eigenen Zeile, die mit einem Zeilenumbruch (CR LF) endet. Die letzte Zeile kann mit einem enden oder nicht.
- Die erste Zeile kann eine Kopfzeile mit den Spaltennamen sein, im selben Format wie die übrigen Zeilen.
- Die Werte werden durch Kommas getrennt, jede Zeile sollte gleich viele Werte haben, und nach dem letzten steht kein Komma.
- Leerzeichen gehören zum Wert: In Ana, Lissabon beginnt der zweite Wert mit einem Leerzeichen.
- Ein Wert, der ein Komma, ein doppeltes Anführungszeichen oder einen Zeilenumbruch enthält, sollte in doppelte Anführungszeichen gesetzt werden.
- Innerhalb eines Werts in Anführungszeichen wird ein doppeltes Anführungszeichen zweimal geschrieben.
Alles andere ist unterschiedlich. Die Library of Congress der USA, die Dateiformate für die Langzeitarchivierung beschreibt, nennt häufige Abweichungen: Semikolons statt Kommas, Zeilenumbrüche nur mit LF oder nur mit CR, Backslashes oder einfache Anführungszeichen statt doppelter und unterschiedlicher Umgang mit Leerzeichen. Eine Datei kann daher für das Programm, das sie geschrieben hat, gültiges CSV sein und von einem anderen trotzdem falsch gelesen werden.
Kommas, Semikolons und Tabulatoren
Wo das Komma das Dezimaltrennzeichen ist, wie in weiten Teilen Europas und Südamerikas, würde ein Komma zwischen den Werten mit Zahlen wie 1,20 kollidieren. Dort erstellte Dateien verwenden daher oft ein Semikolon. Excel folgt den Regionaleinstellungen des Computers: Laut Microsoft verwendet Excel das Semikolon als Listentrennzeichen, wenn das Dezimaltrennzeichen ein Komma ist.
Das ist der übliche Grund, warum eine Datei mit allem in der ersten Spalte öffnet: Sie wurde mit einem Trennzeichen geschrieben und mit einem anderen gelesen. Dieselbe Tabelle mit Dezimalkomma im Preis (der Schrägstrich steht für einen Zeilenumbruch):
Name;Preis / Pão;1,20Durch Semikolons getrennt: zwei Spalten, Name und Preis, und 1,20 bleibt ein einziger Wert.Name,Preis / Pão,"1,20"Durch Kommas getrennt: Der Preis muss in Anführungszeichen stehen, sonst würden 1 und 20 zu zwei Werten.Name;Preis / Pão;1,20 mit Kommas gelesenDie Kopfzeile wird zu einer einzigen Spalte namens Name;Preis, und das Komma in 1,20 teilt die Zeile in Pão;1 und 20.
Durch Tabulatoren getrennte Dateien vermeiden das meiste davon, weil Tabulatoren selten in Werten vorkommen. Sie haben oft die Endung .tsv oder .txt statt .csv.
Anführungszeichen: die wichtigste Regel
Viele kaputte CSV-Dateien gehen auf einen Wert zurück, der Anführungszeichen gebraucht hätte und keine bekam, oder auf ein Anführungszeichen, das nie geschlossen wurde. Diese Beispiele folgen RFC 4180:
"Lissabon, Portugal"Ein einziger Wert. Ohne die Anführungszeichen würde er in zwei Spalten geteilt, Lissabon und Portugal."Sie sagte ""hallo"""Wird als Sie sagte "hallo" gelesen: In Anführungszeichen steht jedes "" für ein doppeltes Anführungszeichen."Zeile eins / Zeile zwei"Ein einziger Wert mit einem Zeilenumbruch darin (hier als Schrägstrich). Programme, die die Datei Zeile für Zeile lesen, ohne auf Anführungszeichen zu achten, teilen ihn in zwei Datensätze."nie geschlossenEin Anführungszeichen ohne Gegenstück kann den Rest der Datei in einen einzigen Wert verschlucken. Ein sorgfältiger Parser meldet stattdessen einen Fehler.
Wenn Sie selbst CSV schreiben, setzen Sie jeden Wert in Anführungszeichen, der das Trennzeichen, ein doppeltes Anführungszeichen oder einen Zeilenumbruch enthält, und verdoppeln Sie die Anführungszeichen darin. Alle Werte in Anführungszeichen zu setzen ist ebenfalls erlaubt und vermeidet Überraschungen.
Zeichenkodierung: warum aus Pão plötzlich Pão wird
Eine CSV-Datei sagt nichts über ihre Zeichenkodierung. RFC 4180 vermerkt, dass üblicherweise US-ASCII verwendet wird, das keine Buchstaben mit Akzenten kennt, und heute sind die meisten Dateien UTF-8. UTF-8 speichert Zeichen wie ã, é oder € in zwei oder drei Bytes. Ein Programm, das diese Bytes mit einer anderen Kodierung liest, etwa Windows-1252, zeigt jedes Byte als eigenes Zeichen:
Pão → PãoDie zwei Bytes von ã, als Windows-1252 gelesen.café → caféDasselbe passiert mit é.€ → €Das Eurozeichen belegt in UTF-8 drei Bytes und wird so zu drei Zeichen.
Microsoft erklärt, dass Excel eine UTF-8-CSV per Doppelklick nur dann richtig öffnet, wenn die Datei mit einer Bytereihenfolge-Markierung (BOM) beginnt, drei unsichtbaren Bytes, die UTF-8 ankündigen. Fehlt sie, empfiehlt Microsoft, die Datei zu importieren, mit Daten > Aus Text/CSV. Sehen Sie dieses Durcheinander in einer selbst erstellten Datei, wurde sie in einer Kodierung gespeichert und in einer anderen geöffnet.
Was Tabellenkalkulationen beim Öffnen einer CSV ändern
Wenn Excel eine .csv-Datei direkt öffnet, errät es den Typ jedes Werts mit seinen Standardeinstellungen. Microsoft dokumentiert, was das mit Daten macht, die nur wie eine Zahl oder ein Datum aussehen:
| Wert in der CSV | Nach dem Öffnen in Excel | Warum |
|---|---|---|
| 007 | 7 | Führende Nullen werden bei Zahlen entfernt. |
| 1234567890123456 | 1234567890123450, in wissenschaftlicher Schreibweise | Excel speichert 15 signifikante Stellen; der Rest wird zu Nullen. |
| SEPT2 | 2-Sep | Als Datum gelesen (2. September). |
| MARCH1 | 1-Mar | Als Datum gelesen (1. März). |
Die Änderungen bleiben, wenn die Datei erneut gespeichert wird. Die Gennamen in der Tabelle sind echte Beispiele: Eine Studie von 2016 in Genome Biology fand solche Umwandlungen in etwa einem Fünftel der Artikel, die Genlisten als Excel-Dateien veröffentlichten, und 2019 benannte das HUGO-Komitee für Gennomenklatur die Gene SEPT und MARCH deshalb in SEPTIN und MARCHF um. Postleitzahlen, Telefonnummern, Artikelnummern und lange Kennungen trifft es genauso.
Damit die Werte unverändert bleiben, importieren Sie die Datei, statt sie zu öffnen: Daten > Aus Text/CSV, dann Bearbeiten, um Power Query zu öffnen, die Spalten auswählen und ihren Datentyp auf Text setzen. Microsoft schlägt auch vor, die Datei vor dem Öffnen von .csv in .txt umzubenennen; dann erscheint der Textimport-Assistent, in dem Sie festlegen, wie jede Spalte gelesen wird. Neuere Versionen von Excel für Microsoft 365 und Excel 2024 haben außerdem Einstellungen zur automatischen Datenkonvertierung, mit denen sich einige dieser Änderungen abschalten lassen.
Ein Risiko beim Export: Formelinjektion
Tabellenkalkulationen können einen Wert, der mit =, +, - oder @ beginnt, als Formel lesen. Exportiert eine Website Text, den Nutzer eingegeben haben, etwa Namen oder Kommentare, kann ein als Formel geschriebener Wert beim Öffnen der Datei ausgeführt werden, statt als Text zu erscheinen. Der Katalog für Softwareschwachstellen von MITRE führt das als CWE-1236, bekannter als CSV- oder Formelinjektion.
Das betrifft Software, die CSV-Dateien aus nicht vertrauenswürdigen Eingaben schreibt. Die übliche Abwehr ist ein einfaches Anführungszeichen (') vor jedem Wert, der mit einem dieser Zeichen beginnt, wobei MITRE anmerkt, dass keine Lösung in jeder Tabellenkalkulation funktioniert. Erhalten Sie eine CSV aus unbekannter Quelle, sehen Sie sie in einem Texteditor an oder importieren Sie sie als Text, bevor Sie dem trauen, was eine Tabellenkalkulation anzeigt.
CSV oder JSON?
CSV ist eine flache Tabelle ohne Typen: Jeder Wert ist Text, bis ein Programm etwas anderes entscheidet. JSON, Thema des ersten Teils dieser Reihe, kennt Zahlen, true, false, null, Listen und verschachtelte Objekte. CSV ist kleiner und öffnet sich in jeder Tabellenkalkulation; JSON verwenden die meisten Web-APIs. Wer zwischen beiden umwandelt, muss entscheiden, was mit diesen Unterschieden geschieht.
Der nTools-Konverter behält jeden CSV-Wert als Text, sodass 007 und lange Kennungen unverändert ankommen, und schreibt verschachtelte JSON-Werte als JSON-Text in eine einzige Zelle. Er liest durch Kommas, Semikolons oder Tabulatoren getrennte Daten, folgt den obigen Regeln für Anführungszeichen, meldet ein nie geschlossenes Anführungszeichen und arbeitet vollständig in Ihrem Browser.
Häufige Fragen
Warum öffnet sich meine CSV mit allem in einer einzigen Spalte?
Die Datei verwendet ein anderes Trennzeichen als das, welches das Programm erwartet, meist Semikolons, die als Kommas gelesen werden, oder umgekehrt. Importieren Sie sie und wählen Sie das Trennzeichen, statt sie per Doppelklick zu öffnen.
Warum sind die Umlaute nach dem Öffnen einer CSV falsch?
Die Datei ist UTF-8 und wurde mit einer anderen Kodierung gelesen. Importieren Sie sie in Excel mit Daten > Aus Text/CSV, statt sie per Doppelklick zu öffnen, oder speichern Sie die Datei als UTF-8 mit Bytereihenfolge-Markierung.
Wie behalte ich führende Nullen, wenn ich eine CSV in Excel öffne?
Importieren Sie die Datei, statt sie per Doppelklick zu öffnen, und setzen Sie Spalten mit Codes, Postleitzahlen oder Telefonnummern vor dem Laden auf Text.
Kann eine CSV-Datei mehrere Blätter oder Formatierungen haben?
Nein. Sie enthält eine einzige Tabelle aus reinem Text. Wenn Sie eine Arbeitsmappe als CSV speichern, speichert Excel nur das aktuelle Blatt, und was reiner Text nicht fassen kann, etwa Formatierungen und Diagramme, geht verloren.
Ist eine durch Semikolons getrennte Datei noch eine CSV?
Streng genommen beschreibt RFC 4180 nur Kommas, aber Dateien mit Semikolons sind verbreitet, und die meisten Programme lesen sie, wenn Sie das Trennzeichen wählen.
Lädt der nTools-Konverter meine Daten hoch?
Nein. Die Umwandlung läuft in Ihrem Browser, und die Daten werden nirgendwohin gesendet.
Weiter in der Reihe Textkodierungen erklärt: UTF-8, Base64 und URL-Kodierung →
Quellen
- RFC 4180 — Common Format and MIME Type for Comma-Separated Values (CSV) Files
- Library of Congress — CSV, Comma Separated Values (RFC 4180)
- Microsoft Support — Import or export text (.txt or .csv) files
- Microsoft Support — Keeping leading zeros and large numbers
- Microsoft Support — Opening CSV UTF-8 files correctly in Excel
- Ziemann, Eren and El-Osta — Gene name errors are widespread in the scientific literature (Genome Biology, 2016)
- HUGO Gene Nomenclature Committee — Summer newsletter 2020
- MITRE — CWE-1236: Improper Neutralization of Formula Elements in a CSV File
Weitere Ratgeber
- IP-Adressen erklärt: IPv4, IPv6 und die reservierten Bereiche
- Subnetze und CIDR erklärt: Präfixe, Masken und nutzbare Hosts
- DNS-Einträge erklärt: A, AAAA, CNAME, MX, TXT und NS
- Ist eine Website down oder liegt es an Ihnen? So prüfen Sie es Schritt für Schritt
- HTTP-Statuscodes und Cloudflare-Fehler: was 403, 404, 429, 500, 503 und 521 bedeuten
- Unix-Zeitstempel und Zeitzonen erklärt
- Mit Datumsangaben rechnen: Tage zwischen zwei Daten, Schaltjahre und ISO-Wochen
- Bildformate erklärt: JPEG, PNG, WebP, AVIF und HEIC
- Bildgröße erklärt: Pixel, DPI, Dateigröße und Qualität
- Handyfotos erklärt: HEIC, EXIF-Metadaten und Ihre Privatsphäre
- Passwortstärke erklärt: Länge, Entropie und Passphrasen
- Hashfunktionen erklärt: SHA-256, Prüfsummen und Passwort-Hashing
- JSON Web Tokens erklärt: Claims, Signaturen und sichere Prüfung
- UUIDs erklärt: v4, v7 und die Wahl der richtigen Version
- QR-Codes erklärt: Kapazität, Fehlerkorrektur und Druckgröße
- Prozente und Mehrwertsteuer erklärt: aufschlagen, herausrechnen, kombinieren
- Häufige JSON-Fehler und wie man sie behebt
- Textkodierungen erklärt: UTF-8, Base64 und URL-Kodierung
- PDFs im Browser bearbeiten: Was beim Zusammenfügen, Teilen und Umwandeln erhalten bleibt