Découper CSV par virgules ou lignes physiques échoue dès qu’une cellule contient ponctuation ou retour. L’analyse dépend de l’état : début, champ non cité, champ cité ou position après le guillemet final. Chaque état autorise des caractères différents.

Ouvrez les guillemets au début

Un guillemet ouvre le mode cité seulement avant tout caractère ordinaire. Plus tard, il devient une erreur et non une consigne de réécriture. Les espaces avant l’ouverture sont des données, car CSVBridge ne rogne ni ne répare les cellules.

Représentez un guillemet par deux

Dans un champ cité, deux guillemets donnent un guillemet littéral et un seul ferme. Ensuite, seul délimiteur, fin de ligne ou fin d’entrée est permis. Refuser le reste évite d’accepter silencieusement un préfixe cité suivi d’un suffixe non cité.

Conservez les retours dans la valeur

CRLF, LF ou CR entre guillemets est du contenu, pas une nouvelle ligne de table. CSVBridge conserve les caractères et JSON.stringify les échappe. Le compteur suit les enregistrements logiques. Un champ non fermé est refusé et aucun JSON partiel ne reste visible.