Nell'esempio che hai impostato c'è già il codice funzionante, ma ho ripreso la mia idea in
questo fiddle per evidenziare il punto.
Nel codice che hai mostrato dici che il risultato è leggermente diverso, ma quella differenza non influenza i dati. Per un csv le due stringhe che riporto di seguito hanno lo stesso identico significato:
Dato fittizio 1,prova,dato fittizio 2
Dato fittizio 1,"prova",dato fittizio 2
Solo che se usi le virgolette per racchiudere i dati, puoi inserire al suo interno anche il separatore di colonna:
// La stringa...
Dato fittizio 1,"prova di testo, con il separatore",Dato fittizio 2
// Da come risultato:
| Dato fittizio 1 | prova di testo, con il separatore | Dato fittizio 2 |
In questo modo non devi preoccuparti di sostituire il separatore con uno che non è incluso nel testo, così l'utente può inserire qualsiasi carattere voglia.
Questo è solo per mostrare in che modo si possono inserire caratteri "speciali" dentro ai dati in un file CSV. Se per il tuo utilizzo va bene il codice che hai preparato, puoi sempre usare quello