Формат CSV в RFC 4180

Как ни странно, но до сих пор не существует единого официального стандарта, регламентирующего формат CSV. Есть только описание, данное в рабочем предложении RFC 4180.

Приводим выдержку из него, касающуюся непосредственно создания CSV-файла. Полностью рабочее предложение RFC 4180 на русском языке можно скачать по ссылке внизу.


1. Каждая запись находится на отдельной строке, ограниченной символом разрыва строки (CRLF). Например:

aaa,bbb,ccc CRLF
zzz,yyy,xxx CRLF

2. Последняя запись в файле может иметь или не иметь разрыв строки в конце. Например:

aaa,bbb,ccc CRLF
zzz,yyy,xxx

3. Допускается строка заголовка в первой строке в том же формате, что и обычная строка записи. Этот заголовок будет содержать имена, соответствующие полям в файле и должен содержать то же количество полей, что и записи в остальной части файла (наличие или отсутствие строки заголовка должно быть указано с помощью дополнительного параметра «header» («заголовок») этого MIME-типа). Например:

field_name,field_name,field_name CRLF
aaa,bbb,ccc CRLF
zzz,yyy,xxx CRLF

4. В заголовке и каждой записи, может быть одно или несколько полей, разделенных запятыми. Каждая строка должна содержать одинаковое количество полей по всему файлу. Пробелы считаются частью поля и не должны игнорироваться. Последнее поле в записи не должно оканчиваться запятой. Например:

aaa,bbb,ccc

5. Каждое поле может быть заключено или не заключено в двойные кавычки. Если поля не заключены в двойные кавычки, то двойные кавычки не могут появляться внутри поля. Например:

«aaa»,»bbb»,»ccc» CRLF
zzz,yyy,xxx

6. Поля, содержащие разрывы строки (CRLF), двойные кавычки и запятые, должны быть заключены в двойные кавычки. Например:

«aaa»,»b CRLF bb»,»ccc» CRLF
zzz,yyy,xxx

7. Если поле заключено в двойные кавычки, то двойные кавычки появляющиеся внутри поля должны быть экранированы еще одними предшествующими двойными кавычками. Например:

«aaa»,»b»»bb»,»ccc»


На практике под CSV часто понимают более общий формат DSV (delimiter-separated values, значения, разделенные разделителем), который может использовать отличные от запятой разделители. Наиболее популярные в нашей стране разделители – символ табуляции и точка с запятой. Причем некоторые программы, как, например, Microsoft Excel, могут использовать тот или иной разделитель в зависимости от региональных настроек (в MS Excel – запятая в общих настройках и точка с запятой в российских).

В зависимости от разделителя форматы могут называться:

  • CSV (Comma-separated values) – значения, разделенные запятыми,
  • SCSV (Semi-colon-separated values) значения, разделенные точкой с запятой,
  • TSV (Tab-separated values) значения, разделенные символом табуляции.

Также в качестве разделителя используются как минимум: двоеточие, пробел, вертикальная черта.

Вне зависимости от использованного разделителя, остальные рекомендации остаются неизменными.

Скачать RFC 4180 на русском

Social tagging:

Comments are closed.