CSV представляет строки, разделенные символами. В вашем случае строка может выглядеть так:
foo,bar,baz
Это представляет три поля со значениями foo
, bar
и baz
. Теперь вопрос в том, что произойдет, если одно из полей содержит запятую? Если вы не отметили это специально, это будет рассматриваться как разделитель полей. Эта отметка выполняется с использованием escape-символов. В вашем случае одна обратная косая черта. Таким образом, мы могли бы иметь что-то вроде
foo\, blarb,bar,baz
, которое читалось бы как foo\, blarb
, bar
и baz
. Теперь вы можете по желанию окружить свои поля кавычками, но вам все равно придется избегать кавычек, которые будут частью ваших значений полей. В конце концов, всегда возникает вопрос, как создать представление ваших данных, которое является unambigious .
Для вашего вопроса о завершении строки: \r
является общим представлением ASCII символ для возврата каретки (байт 13). \n
- символ новой строки (ASCII 10). Эти два символа используются для представления конца строки в Windows и некоторых протоколов, таких как HTTP. В Unix / Linux обычно используется только \n
. Кстати, в обозначениях \n
и \r
также используются escape-последовательности.
Как общее замечание, если вы видите обратную косую черту непосредственно перед определенными символами в сериализованном тексте, это часто своего рода механизм эвакуации. Обратная косая черта очень популярна для этого, поскольку в обычном тексте она встречается довольно редко.