2009-02-19 22 views

Respuesta

41

Sí, es necesario para envolver entre comillas:

"some value 
over two lines",some other value 

De this document, que es el estándar CSV generalmente aceptada:

un campo que contiene incrustado saltos de línea deben ser rodeado por comillas dobles

+1

no es el generalmente aceptados formato RFC 4180? https://en.wikipedia.org/wiki/Comma-separated_values ​​ – HaveAGuess

+0

El artículo de la wikipedia también dice "... (sin embargo, muchas implementaciones de CSV no admiten saltos de línea integrados)". – dansalmo

+0

Kent, por mi pregunta aquí http://stackoverflow.com/questions/43943003/encoding-csv-clrf-into-newlines/43943173?noredirect=1#comment74919143_43943173, cuando dices que las comillas dobles deben coincidir con los saltos de línea, ¿se envuelve? las codificaciones '\ n \ r' también, es decir,' 'Cliente \ r \ n" "Hallo \ r \ n" "hola \ r \ n" "\ r \ n" "" ', o fuera como' " Cliente "\ r \ n" Hola "\ r \ n" hola "\ r \ n" "" '.Intente ambas formas en Hojas de cálculo y números de Google, pero no parece que haga que el trabajo de varias líneas en la celda – Growler

1

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

Tenga en cuenta, sin embargo, que si lo hace, también debe codificar el carácter de escape, es decir \ cede \ después de la decodificación.

+2

csv no usa escape de estilo C –

+1

algunas aplicaciones csv son compatibles con este formulario. csv es un estándar lamentablemente mal definido. Talking Excel csv es (pragmáticamente) mejor, aunque esto no es – ShuggyCoUk

10

la variante más común de csv por ahí, 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 todas válidas. 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 maneja esto correctamente puede ser difícil (especialmente si usted está confiando en expresiones regulares).

7

Se mencionó aquí un estándar para CSV. Me interesaría saber más acerca de esto - los únicos estándares yo sepa son

+0

sí, el RFC al que se vincula es el estándar definitivo. Menciona poner CRLF dentro de comillas dobles para escapar de él. Lamentablemente, su punto sobre lo que excel acepta es válido ... otro caso más de MS tratando de subvertir los estándares. – rmeador

+0

gracias por la confirmación –

+1

¡Que RFC se creó en 2005! Excel ha admitido CsV durante mucho más tiempo que ese ... – ShuggyCoUk

Cuestiones relacionadas