¿Es posible/legal de alguna manera codificar caracteres CR/LF en un archivo CSV?¿Se puede codificar CR/LF en archivos CSV?
(como parte de un estándar CSV?)
Si es así ¿cómo debo codificar CR/LF?
¿Es posible/legal de alguna manera codificar caracteres CR/LF en un archivo CSV?¿Se puede codificar CR/LF en archivos CSV?
(como parte de un estándar CSV?)
Si es así ¿cómo debo codificar CR/LF?
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
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.
csv no usa escape de estilo C –
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
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).
Se mencionó aquí un estándar para CSV. Me interesaría saber más acerca de esto - los únicos estándares yo sepa son
lo sobresalir acepta
el RFC a www.rfc-editor.org/rfc/rfc4180.txt
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
gracias por la confirmación –
¡Que RFC se creó en 2005! Excel ha admitido CsV durante mucho más tiempo que ese ... – ShuggyCoUk
no es el generalmente aceptados formato RFC 4180? https://en.wikipedia.org/wiki/Comma-separated_values – HaveAGuess
El artículo de la wikipedia también dice "... (sin embargo, muchas implementaciones de CSV no admiten saltos de línea integrados)". – dansalmo
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