Portable CSV guide / synthetic examples
Count fields, not commas.
A comma inside a quoted field is data. A physical newline inside a quoted field may be data too. Diagnose logical records before editing a file.
A valid three-column example
Copy this synthetic UTF-8 comma CSV with a header. The line break between north and south is intentionally inside quotes.
id,note,team
0017,"hello, fern",green
0018,"said ""hello""",blue
0019,"north
south",green
Expected: one header and three data records, each with three fields. Notes are hello, fern, said "hello" and north\nsouth (here \n denotes the embedded LF). The last record occupies two physical lines. Do not split every line or comma blindly.
A width mismatch is a different problem
id,note,team
0017,hello,green
0018,hello
Expected widths: header 3, first data record 3, second data record 2. If the last team is intentionally empty, a three-field spelling is 0018,hello,. But only the producer or schema can confirm intent. Do not silently append a field to repair ambiguous input.
Malformed quotes need an explicit fix at the source
id,note
0017,"unclosed
The quoted field never closes. Under Prooftable’s strict grammar, this is an error, not a partial record to salvage. A quote inside an unquoted field is also invalid in that grammar; quotes within a quoted value must be doubled.
Prooftable accepts LF and CRLF record endings, but not lone CR outside quotes. Blank records are retained, so inspect their effect on shape rather than assuming they vanish.
Prooftable is not released. Its width and quoting diagnostics block unresolved export in the development build. Read the blocking checks.