Many applications or libraries that consume or produce CSV files have options to specify an alternative delimiter.
[5] CSV is a common data exchange format that is widely supported by consumer, business, and scientific applications.
Among its most common uses is moving tabular data[8][9] between programs that natively operate on incompatible (often proprietary or undocumented) formats.
[12] Alternatively, CSV does not support more complex data relations and makes no distinction between null and empty values, and in applications where these features are needed other formats are preferred.
Therefore, without additional information (such as whether RFC 4180 is honored), a file claimed simply to be in "CSV" format is not fully specified.
Comma-separated values is a data format that predates personal computers by more than a decade: the IBM Fortran (level H extended) compiler under OS/360 supported CSV in 1972.
[16] The manual for the Osborne Executive computer, which bundled the SuperCalc spreadsheet, documents the CSV quoting convention that allows strings to contain embedded commas, but the manual does not specify a convention for embedding quotation marks within quoted strings.
The plain-text character of CSV files largely avoids incompatibilities such as byte-order and word size.
The files are largely human-readable, so it is easier to deal with them in the absence of perfect documentation or communication.
RFC 7111 specifies how row, column, and cell ranges can be selected from a CSV document using position indexes.
Simple CSV implementations may prohibit field values that contain a comma or other special characters such as newlines.
CSV files normally will even survive naïve translation from one character set to another (unlike nearly all proprietary data formats).
CSV does not, however, provide any way to indicate what character set is in use, so that must be communicated separately, or determined at the receiving end (if possible).
Databases that include multiple relations cannot be exported as a single CSV file[citation needed].
The 2005 technical standard RFC 4180 formalizes the CSV file format and defines the MIME type "text/csv" for the handling of text-based fields.
The exceptions are (a) programs may not support line-breaks within quoted fields, (b) programs may confuse the optional header with data or interpret the first data line as an optional header, and (c) double-quotes in a field may not be parsed correctly automatically.
Tabular Data package was heavily based on CSV, using it as the main data transport format and adding basic type and schema metadata (CSV lacks any type information to distinguish the string "1" from the number 1).
Most provide some way to specify the field delimiter, decimal separator, character encoding, quoting conventions, date format, etc.