Каждая запись расположена на отдельной строке, разделенной разрывом строки (CRLF). Например:
ааа, bbb, ccc CRLF zzz, гггг, xxx CRLF
Последняя запись в файле может иметь или не иметь разрыв конца строки. Например:
ааа, bbb, ccc CRLF zzz, гггг, ххх
Там может быть необязательная строка заголовка, появляющаяся как первая строка файла в том же формате, что и обычные строки записи. Этот заголовок будет содержать имена, соответствующие полям в файле, и должен содержать то же количество полей, что и записи в остальной части файла (наличие или отсутствие строки заголовка должно указываться с помощью необязательного параметра header MIME тип) Например:
field_name, field_name, field_name CRLF aaa, bbb, ccc CRLF zzz, гггг, xxx CRLF
В заголовке и каждой записи может быть одно или несколько полей, разделенных запятыми. Каждая строка должна содержать одинаковое количество полей в файле. Пробелы считаются частью поля и не должны игнорироваться. Последнее поле в записи не должно сопровождаться запятой. Например:
ааа, ГЭБ, ссс
Каждое поле может быть или не быть заключено в двойные кавычки (однако некоторые программы, такие как Microsoft Excel, вообще не используют двойные кавычки). Если поля не заключены в двойные кавычки, то двойные кавычки могут не появляться внутри полей. Например:
"ааа", "bbb", "ccc" CRLF zzz, гггг, ххх
Поля, содержащие разрывы строк (CRLF), двойные кавычки и запятые, должны быть заключены в двойные кавычки. Например:
"ааа", "b CRLF bb", "ccc" CRLF zzz, гггг, ххх
Если двойные кавычки используются для включения полей, то двойная кавычка, появляющаяся внутри поля, должна быть экранирована, предшествуя другой двойной кавычке. Например:
«Ааа», «б», «бб», «ссс»