È possibile/legale codificare in qualche modo caratteri CR/LF in un file CSV?Puoi codificare CR/LF in file CSV?
(come parte di uno standard CSV?)
Se sì, come devo codificare CR/LF?
È possibile/legale codificare in qualche modo caratteri CR/LF in un file CSV?Puoi codificare CR/LF in file CSV?
(come parte di uno standard CSV?)
Se sì, come devo codificare CR/LF?
Sì, è necessario avvolgere tra virgolette:
"some value
over two lines",some other value
Da this document, che è lo standard CSV generalmente accettato:
un campo che contiene incorporato interruzioni di linea deve essere surounded di virgolette
Non penso che sia parte dello standard (se ci anche uno), ma è possibile utilizzare l'escape standard in stile C, ovvero codificare \ r \ n.
Tenere presente, tuttavia, che se si esegue questa operazione, è necessario codificare anche il carattere di escape, ad esempio \ yields \ after decoding.
csv non usa l'escape in stile C –
alcune app csv supportano questo modulo. csv è uno standard deplorevolmente definito male. Parlare di Excel csv è (pragmaticamente) il meglio anche se questo non è – ShuggyCoUk
la variante più comune di csv che è quella compatibile con excel consentirà newline incorporate fintanto che il campo è circondato da virgolette doppie.
foo,bar,"blah blah
more blah blah",baz
o
foo,bar,"blah blah
more blah blah"
o
"blah blah
more blah blah",baz
sono tutti validi. Questo meccanismo consente anche le virgole incorporate.
Anche le virgolette sui campi testuali senza righe nuove incorporate (o virgole) vanno bene. Se il testo stesso contiene una virgola doppia, allora il meccanismo per sfuggire è mettere insieme due, per esempio.
foo,bar,"this person said ""blah blah
more blah blah""",baz
Scrivi lettore csv che gestisce questo correttamente può essere difficile (soprattutto se si fa affidamento sulle espressioni regolari).
Menzione è stata fatta qui di uno standard per CSV. Sarei interessato a sapere di più su questo - le uniche norme io sappia sono
qualunque eccellere accetta
sì, l'RFC a cui si collega è lo standard definitivo. Si menziona l'inserimento di CRLF tra virgolette per evitarlo. Sfortunatamente, il tuo punto di vista su ciò che Excel accetta è valido ... un altro caso di SM che cerca di sovvertire gli standard. – rmeador
grazie per la conferma –
Quella RFC è stata creata nel 2005! Excel ha supportato CsV per un tempo molto più lungo di quello ... – ShuggyCoUk
non è il generalmente accettati formattare RFC 4180? https://en.wikipedia.org/wiki/Comma-separated_values – HaveAGuess
L'articolo di wikipedia dice anche "... (tuttavia, molte implementazioni CSV non supportano interruzioni di riga incorporate)." – dansalmo
Kent, per la mia domanda qui http://stackoverflow.com/questions/43943003/encoding-csv-clrf-into-newlines/43943173?noredirect=1#comment74919143_43943173, quando dici che le virgolette doppie vanno a capo delle interruzioni di riga, si avvolge anche le codifiche '\ n \ r', vale a dire,' "Cliente \ r \ n" "Hallo \ r \ n" "hola \ r \ n" "\ r \ n" "", o al di fuori come '" Cliente "\ r \ n" hallo "\ r \ n" hola "\ r \ n" "" '.Provare entrambi i modi in Google fogli e numeri non sembra rendere il lavoro multilinea nella cella – Growler