Подтвердить что ты не робот

Можете ли вы кодировать CR/LF в CSV файлы?

Возможно ли законное кодирование CR/LF символов в CSV файл?

(как часть стандарта CSV?)

Если да, то как мне кодировать CR/LF?

4b9b3361

Ответ 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. Мне было бы интересно узнать больше об этом - единственные стандарты, о которых я знаю, - это

Ответ 4

Я не думаю, что это часть стандарта (если таковой даже есть), но вы можете использовать стандартное экранирование в стиле C, т.е. encode\r\n.

Имейте в виду, однако, что если вы это сделаете, вы также должны закодировать escape-символ - то есть\yields\после декодирования.