CSV-Trennzeichen erkennen: Komma, Semikolon, Tab oder Pipe
CSV-Dateien verwenden nicht immer Kommas. Regionale Exporte nutzen häufig Semikolons, Datenpipelines bevorzugen mitunter Tabulatoren und Befehlszeilenwerkzeuge erzeugen oft Text mit Pipes als Trennzeichen.
Im Browser ausführen – kostenlos
Dieses Werkzeug untersucht eine repräsentative Stichprobe und ermittelt das wahrscheinlichste Trennzeichen aus Komma, Semikolon, Tab und Pipe. Es verlangt ein stabiles Muster in allen nicht leeren Zeilen und rät daher nicht, wenn die Struktur uneinheitlich ist. Das Ergebnis enthält das Zeichen, seine Bezeichnung, die abgeleitete Spaltenzahl und die Anzahl der untersuchten Zeilen.
Wählen Sie eine repräsentative CSV-Stichprobe
Fügen Sie mindestens zwei nicht leere Zeilen aus derselben CSV-Datei ein, möglichst die Kopfzeile und mehrere gewöhnliche Datenzeilen. Eine geeignete Stichprobe bewahrt die ursprünglichen Trennzeichen und Zeilenumbrüche; Sie müssen keine große Datei vollständig hochladen, nur um deren Format zu bestimmen. Die Erkennung berücksichtigt vier gängige Kandidaten: Komma, Semikolon, Tabulator und Pipe. Leere Zeilen werden übersprungen, auch eine von vielen Editoren angefügte Schlusszeile, da sie keine Feldstruktur enthalten. Jede relevante Zeile sollte das tatsächliche Trennzeichen gleich oft enthalten. Eine Kopfzeile mit drei Feldern und zwei Datenzeilen mit je drei Feldern besitzen beispielsweise jeweils zwei Trennzeichen. Enthält die Stichprobe Erläuterungen vor der Kopfzeile, mehrzeilige Datensätze oder abgeschnittene Zeilen, bereinigen Sie sie oder wählen Sie einen geeigneteren Ausschnitt. Gleichmäßige Eingaben liefern Belege für die Struktur, statt eine Deutung aus einem einzelnen Zeichen zu verlangen. Der Inhalt bleibt unverändert: Das Werkzeug meldet seine Feststellung, formatiert, parst, speichert oder korrigiert den bereitgestellten CSV-Text jedoch nicht.
So funktioniert die Häufigkeitsentscheidung
Für jedes mögliche Zeichen zählt die Erkennung die wörtlichen Vorkommen in allen nicht leeren Zeilen. Ein Kandidat kommt nur infrage, wenn er in jeder Zeile mindestens einmal und stets gleich häufig vorkommt. Unter den verbleibenden Kandidaten gewinnt derjenige mit der höchsten Häufigkeit je Zeile. Dieses Verfahren ist deterministisch und nachvollziehbar: Derselbe Text ergibt immer dasselbe Resultat, ohne Modell, Netzwerkzugriff, Gebietsschema oder Zufallsentscheidung. Die ausgegebene Spaltenzahl ist um eins größer als die Anzahl der Vorkommen des Gewinners; die Zeilenzahl zeigt den Umfang der untersuchten Grundlage. Die Häufigkeitsanalyse ist bewusst enger gefasst als ein vollständiger CSV-Parser. Kandidaten innerhalb von Werten in Anführungszeichen werden ebenfalls wörtlich gezählt. Enthält ein zitierter Text unterschiedlich viele Kommas, während Semikolons die Felder einheitlich trennen, kann das Semikolon dennoch korrekt gewinnen. Komplexe Zitate oder mehrzeilige Datensätze können jedoch alle Kandidaten uneinheitlich erscheinen lassen. Dann gibt das Werkzeug einen Fehler statt einer unzuverlässigen Vermutung zurück. Verwenden Sie anschließend einen spezialisierten CSV-Parser, wenn Anführungszeichen und Escape-Sequenzen vollständig verarbeitet werden müssen.
Behandeln Sie uneinheitliche und mehrdeutige Daten
Eine Fehlermeldung ist sinnvoll, wenn die Stichprobe keine belastbare Antwort zulässt. Weist weder Komma noch Semikolon, Tab oder Pipe in allen nicht leeren Zeilen dieselbe positive Anzahl auf, meldet das Werkzeug, dass kein Kandidat gleichmäßig erscheint. Dies macht häufig beschädigte Zeilen, vermischte Exporte, eingefügte Hinweise oder Inhalte sichtbar, die gar keine getrennten Tabellendaten sind. Ein weiterer Fehler betrifft Mehrdeutigkeit: Mehrere Kandidaten können bei der höchsten gleichmäßigen Häufigkeit gleichauf liegen. Eine Auswahl nach willkürlicher Rangfolge würde das nachfolgende Parsen unvorhersehbar machen, deshalb verlangt die Erkennung eine eindeutigere Stichprobe. Fügen Sie repräsentative Zeilen hinzu, entfernen Sie Begleittext oder prüfen Sie die Exporteinstellungen des Quellsystems. Eine einzelne Zeile wird ebenfalls abgelehnt, weil die wiederkehrende Struktur zwischen Zeilen den wesentlichen Nachweis bildet. Übergeben Sie nach erfolgreicher Erkennung das zurückgegebene Zeichen an Ihren CSV-Reader und prüfen Sie bei Bedarf, ob die geparsten Zeilen die gemeldete Spaltenzahl besitzen. Im Browser ist die Nutzung kostenlos; automatisierte API-Aufrufe kosten $0.002 pro Anfrage. Beide Wege führen dieselbe reine Logik aus.
Anwendungsfälle
Import automatisch konfigurieren
Prüfen Sie eine Lieferantenstichprobe, bevor Sie das Trennzeichen für einen CSV-Parser oder Datenbankimport festlegen.
Fehlerhaften Tabellen-Upload untersuchen
Stellen Sie fest, ob ein Export ein regionales Semikolon statt des vom Uploadformular erwarteten Kommas verwendet.
Pipeline-Annahmen absichern
Prüfen Sie vor Transformation oder Schemazuordnung, ob eingehender getrennter Text eine stabile Zeilenstruktur besitzt.
Häufige Fragen
Welche Trennzeichen werden erkannt?
Geprüft werden Komma, Semikolon, Tabulator und Pipe.
Wann gilt ein Trennzeichen als gleichmäßig?
Es muss mindestens einmal und in jeder nicht leeren Zeile exakt gleich oft vorkommen.
Werden leere Zeilen berücksichtigt?
Nein. Leere Zeilen und Zeilen nur mit Leerraum werden übersprungen, auch am Dateiende.
Versteht die Erkennung CSV-Felder in Anführungszeichen?
Nein. Sie zählt wörtliche Vorkommen, also auch mögliche Trennzeichen innerhalb zitierter Werte.
Warum führt eine mehrdeutige Stichprobe zu einem Fehler?
Wenn mehrere Kandidaten bei der stärksten gleichmäßigen Häufigkeit gleichauf liegen, wäre eine Auswahl nach Priorität bloß geraten.
Was kostet eine API-Anfrage?
Jede API-Anfrage kostet $0.002; die Browserfassung läuft kostenlos lokal.
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/data/detect-csv-delimiter \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"name,city,score\nAda,London,92\nLinus,Helsinki,88"}'const res = await fetch("https://api.kit.forhosting.com/data/detect-csv-delimiter", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "name,city,score\nAda,London,92\nLinus,Helsinki,88"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/data/detect-csv-delimiter",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "name,city,score\nAda,London,92\nLinus,Helsinki,88"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/data/detect-csv-delimiter", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"name,city,score\\nAda,London,92\\nLinus,Helsinki,88"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"name,city,score\nAda,London,92\nLinus,Helsinki,88"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/data/detect-csv-delimiter", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"text": "name,city,score\nAda,London,92\nLinus,Helsinki,88"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "data.detect_csv_delimiter",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Limits
max_mb | 25 |
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |