¿Puedes codificar CR / LF en archivos CSV?

¿Es posible / legal de alguna manera codificar caracteres CR / LF en un archivo CSV?

(como parte de un estándar CSV?)

Si es así, ¿cómo debo codificar CR / LF?

Sí, necesitas envolver entre comillas

"some value over two lines",some other value 

De este documento , que es el estándar de CSV generalmente aceptado:

Un campo que contiene saltos de línea incrustados debe rodearse de comillas dobles

la variante más común de csv que es la compatible con Excel permitirá nuevas líneas incorporadas siempre que el campo esté rodeado por comillas dobles.

 foo,bar,"blah blah more blah blah",baz 

o

 foo,bar,"blah blah more blah blah" 

o

 "blah blah more blah blah",baz 

son todos validos Este mecanismo también permite comas incrustadas.

El uso de comillas alrededor de campos de texto sin líneas nuevas incorporadas (o comas) también está bien. Si el texto en sí contiene una comilla doble, entonces el mecanismo para escapar es juntar dos, por ejemplo.

 foo,bar,"this person said ""blah blah more blah blah""",baz 

Escribir un lector de csv que maneje esto correctamente puede ser complicado (especialmente si confía en expresiones regulares).

Aquí se menciona una norma para CSV. Me gustaría saber más sobre esto, los únicos estándares que conozco son

No creo que sea parte del estándar (si es que lo hay), pero podrías usar el escape de estilo C estándar, es decir, codificar \ r \ n.

Tenga en cuenta, sin embargo, que si lo hace, también debería codificar el carácter de escape, es decir, \ yields \ después de la deencoding.