Возможно ли законное кодирование CR/LF символов в CSV файл?
(как часть стандарта CSV?)
Если да, то как мне кодировать CR/LF?
Ответ 1
Да, вам нужно заключить в кавычки:
"some value
over two lines",some other value
Из этот документ, который является общепринятым стандартом CSV:
Поле, содержащее встроенные линейные перерывы должны быть окружены двойные кавычки
Ответ 2
наиболее распространенный вариант csv, который является совместимым с excel, позволит использовать встроенные новые строки, пока поле окружено двойными кавычками.
foo,bar,"blah blah
more blah blah",baz
или
foo,bar,"blah blah
more blah blah"
или
"blah blah
more blah blah",baz
все допустимы. Этот механизм также допускает встроенные запятые.
Использование цитат вокруг текстовых полей без встроенных новых строк (или запятых) тоже отлично. Если сам текст содержит двойную кавычку, тогда механизм для его выхода состоит в том, чтобы, например, поставить два.
foo,bar,"this person said ""blah blah
more blah blah""",baz
Написание csv-ридера, который правильно справляется с этим, может быть сложным (особенно если вы полагаетесь на регулярные выражения).
Ответ 3
Здесь упоминается стандарт для CSV. Мне было бы интересно узнать больше об этом - единственные стандарты, о которых я знаю, - это