Was ist ein CSV-BOM, und warum bricht es alles?
Das BOM (Byte Order Mark) sind drei unsichtbare Bytes am Anfang einer Datei, die unverhältnismäßig viel Ärger machen. Diese Anleitung erklärt, was es ist, warum es existiert, und wie Sie es loswerden.
Was ist ein BOM?
BOM steht für Byte Order Mark. Für UTF-8 ist das die Byte-Sequenz EF BB BF (U+FEFF). Sie sollte die Kodierung einer Textdatei signalisieren — ein Leser sieht diese Bytes und weiß, die Datei ist UTF-8.
Für UTF-16 und UTF-32 ist das BOM essentiell, weil diese Kodierungen Big-Endian oder Little-Endian sein können. Für UTF-8 ist es unnötig — UTF-8 hat keine Byte-Order-Ambiguität. Der Unicode-Standard sagt ausdrücklich, dass ein BOM für UTF-8 'weder erforderlich noch empfohlen' ist.
Warum fügt Excel es hinzu?
Bei 'Speichern unter → CSV UTF-8' in Excel wird ein BOM hinzugefügt, damit Excel selbst die Kodierung beim erneuten Öffnen erkennen kann. Eine Microsoft-zentrierte Designentscheidung, die im Excel-Ökosystem prima funktioniert und alles andere bricht.
Was bricht?
Pythons csv-Modul: der erste Header wird '\ufeffid' statt 'id'. DictReader-Keys matchen nicht. Pandas: die erste Spalte heißt '\ufeffcolumn_name'. SQL BULK INSERT: lehnt die Datei ab oder packt das BOM in die Daten der ersten Zeile. JSON-Parser: scheitern, wenn ein BOM JSON-Inhalt vorausgeht. Shell-Tools: grep, awk, cut sehen das BOM als Teil des ersten Felds.
Wie entfernen?
Python: open('file.csv', encoding='utf-8-sig') — das 'sig'-Suffix sagt Python, das BOM zu entfernen. In Node.js: buffer.toString('utf8').replace(/^\uFEFF/, ''). In Bash: sed -i '1s/^\xEF\xBB\xBF//' file.csv. Oder einfach die Datei in CSV First Aid ablegen — ein Klick.
Soll ich jemals ein BOM hinzufügen?
Nur wenn Ihr einziger Konsument Excel ist. Wird die Datei von irgendeinem anderen Tool verarbeitet (Python, Datenbanken, APIs, Shell-Skripte), das BOM weglassen. CSV First Aid lässt Sie beim Export ein BOM hinzufügen — aber nur wenn Sie das explizit wählen.
Keine Lust auf Hex-Editoren? CSV First Aid erkennt und entfernt das BOM für Sie.
CSV jetzt reparieren →Ähnliche Tools
UTF-8-BOM aus Ihrer CSV entfernen
Erste Spalte zeigt 'ID' statt 'ID'? Das ist ein UTF-8-BOM — drei unsichtbare Bytes, die die meisten Export-Tools hinterlassen. Wir entfernen sie und die Überschrift liest sich wieder sauber.
CSV-Kodierung reparieren
é, ü, ö statt é, ü, ö? Die Datei wurde in einer Kodierung gespeichert und in einer anderen gelesen. Wir finden heraus, welche, und konvertieren nach UTF-8 — dann sieht Müller wieder wie Müller aus.
Unsichtbare Zeichen aus einer CSV entfernen
NBSP, Zero-Width-Joiner, versprengte Control-Bytes — Excel zeigt sie nicht, aber SVERWEIS sieht sie und matcht nicht. Wir scannen jede Zelle und entfernen, was nicht hingehört.