Разделение CSV по запятым или физическим строкам ломается, когда ячейка содержит пунктуацию или перенос. Корректный разбор зависит от состояния: начало поля, обычное поле, quoted-поле или позиция сразу после закрывающей кавычки. В каждом состоянии допустимы разные символы.

Открывайте кавычки только в начале поля

Двойная кавычка включает quoted-режим только до появления обычного символа. Кавычка позже становится ошибкой, а не поводом переписать значение. Пробелы перед открывающей кавычкой считаются данными, а не декорацией, потому что CSVBridge намеренно ничего не обрезает и не исправляет.

Записывайте кавычку двумя кавычками

Внутри quoted-поля две соседние двойные кавычки превращаются в одну буквальную. Одиночная закрывает поле. После неё допустимы только выбранный разделитель, конец записи или ввода. Любой другой символ отклоняется, чтобы смешанный quoted-префикс и обычный суффикс не принимались незаметно.

Сохраняйте перенос внутри quoted-значения

CRLF, LF или CR внутри кавычек — содержимое ячейки, а не новая запись таблицы. CSVBridge сохраняет точные символы, а JSON.stringify экранирует их. Счётчик записей следует логическим записям, не физическим строкам. Незакрытое поле в конце отклоняется, частичный JSON не остаётся видимым.