Structural repair and business-data repair are different
A parser can prove facts about CSV syntax: where fields begin and end, whether rows have consistent widths, whether the bytes are valid UTF-8, and whether a delimiter can be normalized. It cannot prove what a missing SKU, price, product relationship, or date was supposed to be.
Usually safe when the source is unambiguous
- Re-serializing parsed fields with a chosen delimiter.
- Writing confirmed decoded text as UTF-8.
- Normalizing line endings.
- Removing a purely empty trailing record.
- Trimming header whitespace when the user explicitly requests it.
- Adding correct CSV quoting during re-serialization.
Needs confirmation
- Removing duplicate records.
- Changing a legacy source encoding.
- Changing a header name to match a destination schema.
- Removing BOM bytes when a destination is known to reject them.
- Repairing a quote when more than one interpretation is possible.
Should not be guessed automatically
- Creating missing SKUs or handles.
- Inventing prices or inventory values.
- Changing dates because they “look wrong.”
- Moving values between columns when the intended field is uncertain.
- Creating product or variant relationships.
- Replacing unknown garbled text with guessed words.
Why “Fix All” can be dangerous
A button can create false confidence. If a repair tool rewrites ambiguous data silently, the resulting CSV may import successfully while carrying incorrect values. A failed import is visible; silently incorrect imported data can be much harder to detect.
CSVFixLab’s repair rule
CSVFixLab enables a repair download only when the parser can safely re-serialize the data under the selected rules. Broken or unclosed quotes, inconsistent row widths, duplicate headers, empty headers, or an unconfirmed non-UTF-8 source block automatic repair.
Always review before production
A structurally valid file is not a guarantee that the destination will accept it. Platform-specific rules, account state, duplicates, references, limits, and business constraints can still fail. Keep the original file and test repaired output in a controlled import first.
Match a proposed repair to a reproducible case
- Delimiter normalization: serialization can be checked
- The semicolon case compares the parsed values before and after conversion. A comma inside a value must remain inside that field. The successful conversion proves this fixture's value preservation, not every importer's compatibility.
- Unknown encoding: confirmation comes before conversion
- The Windows-1252 case separates blocked Auto mode from a source-confirmed conversion. Choosing a legacy encoding because the text looks plausible is not confirmation.
- Missing fields or duplicate names: the source decides
- The row-width case and duplicate-header case require a declared synthetic schema for their manual examples. Those example values and names must not be used as guesses for a real file.
- Changed identifiers: syntax cannot recover an earlier value
- The export value comparison changes three cells while retaining a clean structure. Repair serialization preserves the changed input; recovery requires an authoritative original.
Make a review record for your own file
- Keep the original bytes and record the source application, export settings, delimiter, encoding, expected headers, and expected number of data records.
- Write down the exact problem and the proposed change. If a price, identifier, or field boundary is uncertain, return to the source instead of downloading a guessed correction.
- Download an enabled repair, then run that downloaded file through the checker again. Compare parsed values with the source; a byte difference can be normal when line endings or quoting change.
- Review the destination's separate rules and test in a controlled setting before replacing production data.
The lists above describe repair decisions in general; they are not a list of controls in CSVFixLab. The current download does not deduplicate records, infer missing values, rename ambiguous headers, or neutralize spreadsheet formulas.