Test files › Structured data › bom-and-semicolons.csv

CSV with a UTF-8 BOM and semicolons

UTF-8 BOM, semicolon delimiters and comma decimal separators - the format Excel produces in most European locales.

↓ Download bom-and-semicolons.csv
Filenamebom-and-semicolons.csv
FormatCSV
Size124 bytes (124 bytes)
MIME typetext/csv; charset=utf-8
SHA-256f011c1f7fd1b20aa993782865d5884ca6aa23089fabe5dc560b47c041bdf080a
What this file catchesImporters hardcoded to comma delimiters, and the stray "" that appears before the first column header when the BOM is not stripped. Extremely common real-world support ticket.

Handle it in code

Each snippet below was run against this exact file with Python 3.14.4 and Node 24.15.0 when this page was built, and the output shown is what it printed.

Python

European Excel exports use semicolons and often a BOM. The utf-8-sig codec drops the BOM, and the Sniffer finds the delimiter instead of assuming a comma.

import csv

with open("bom-and-semicolons.csv", newline="", encoding="utf-8-sig") as f:
    dialect = csv.Sniffer().sniff(f.read(4096), delimiters=",;\t")
    f.seek(0)
    rows = list(csv.reader(f, dialect))

print("delimiter:", repr(dialect.delimiter))
print("header:", rows[0])

Run against this file, it prints: delimiter: ';' header: ['id', 'name', 'betrag', 'datum']

Related guides and tools

Sample CSV fileCharacter encodingsUpload validation checklistVerify its SHA-256

Download & verify

curl -fsSL -o "bom-and-semicolons.csv" "https://files.hexaqa.com/csv/bom-and-semicolons.csv"
curl -fsSL "https://files.hexaqa.com/csv/bom-and-semicolons.csv" | sha256sum # expect: f011c1f7fd1b20aa993782865d5884ca6aa23089fabe5dc560b47c041bdf080a

More structured data test files

1000-rows.csv1million-rows.csvformula-injection.csvquoting-nightmare.csvragged-rows.csvvalid-simple.csvdeeply-nested-100000.jsonlarge-array-100mb.json

← All Structured data files