ParseCSV.com

Find broken quotes and ragged rows, then repair them deliberately

Each finding names the record, physical lines, byte span, field and reason. Choose a documented recovery rule or patch the record by hand.

Loading the parser…

The ledger always adds up

Every logical record is counted exactly once: OK, accepted with warning, repaired, rejected, header, preamble, comment or skipped blank. Every byte is counted too, including a byte-order mark and anything after the last complete record in a sample. Both equations are printed and checked. If they ever disagree, that is shown as a failure.

Strict and recovery modes

Recovered records are counted as repaired with the policy that changed them. Switching policies reparses everything, so record numbers and counts are recomputed instead of patched.

ProblemStrictRecovery options
Quote inside an unquoted fieldRejectedKeep as text, or reject
Text after a closing quoteRejectedAppend to the field, or reject
Quoted field never closedRejectedClose at end of input, close at line end (changes record boundaries), or reject
Wrong number of fieldsRejectedKeep with warning, pad short records (long ones rejected), or reject

Manual repair with provenance

Select a finding, edit the raw text of that record and preview how it parses before applying. A patch only applies if the source is still at the revision and bytes you edited; it is kept in a history with its old and new text, and can be undone. After every patch the whole file is parsed again and old diagnostics are discarded.

Rejected records can be exported as raw fragments with their byte and line positions. That file is JSON, deliberately not CSV, because broken fragments may not parse on their own.

Questions

How is the expected number of fields decided?

From the header when there is one; otherwise from the most common width among data records. The ledger says which source was used and shows the full width distribution.

What does “evidence of truncation” mean?

If the input ends inside a quoted field, or in the middle of a multibyte character, the file may have been cut off. ParseCSV reports that as evidence, not proof.

Can I share the findings without sharing the data?

Yes. The diagnostic report in the Export tab contains counts, dialect and positions only. Raw excerpts and the file name are included only if you tick that option.