<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.17 (Ruby 3.1.2) -->
<?rfc strict="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-shafranovich-rfc4180-bis-03" category="info" submissionType="independent" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.14.2 -->
  <front>
    <title abbrev="rfc4180-bis">Common Format and MIME Type for Comma-Separated Values (CSV) Files</title>
    <seriesInfo name="Internet-Draft" value="draft-shafranovich-rfc4180-bis-03"/>
    <author initials="Y." surname="Shafranovich" fullname="Yakov Shafranovich">
      <organization>Amazon Web Services (AWS)</organization>
      <address>
        <email>yakovsh@amazon.com</email>
      </address>
    </author>
    <date year="2022" month="September" day="14"/>
    <abstract>
      <t>This RFC documents the common format used for Comma-Separated Values (CSV)
files and updates the associated MIME type "text/csv".</t>
    </abstract>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>The comma separated values format (CSV) has been used as a common way
to exchange data between disparate systems and applications for many years.
Surprisingly, while this format is very popular, it has never been formally
documented and didn't have a media type registered. This was addressed in 2005 via publication
of <xref target="RFC4180"/> and the concurrent registration of the "text/csv" media type.</t>
      <t>Since the publication of <xref target="RFC4180"/>, the CSV format has evolved and this specification
seeks to reflect these changes as well as update the "text/csv" media type registration.</t>
      <section anchor="terminology">
        <name>Terminology</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in
BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in all
capitals, as shown here.</t>
      </section>
      <section anchor="motivation-for-and-status-of-this-document">
        <name>Motivation For and Status of This Document</name>
        <t>The original motivation of <xref target="RFC4180"/> was to provide a reference
in order to register the media type "text/csv". It tried to document
existing practices at the time based on the approaches used by most implementations.
This document continues to do the same, and updates the original document to reflect
current practices for generating and consuming of CSV files.</t>
        <t>Both <xref target="RFC4180"/> and this document are published as informational RFC for the benefit
of the Internet community and and not intended to be used as formal standards.
Implementers should consult <xref target="RFC1796"/> and <xref target="RFC2026"/> for crucial differences
between IETF standards and informational RFCs.</t>
      </section>
    </section>
    <section anchor="format">
      <name>Definition of the CSV Format</name>
      <t>While there had been various specifications and implementations for the
CSV format (for ex. <xref target="CREATIVYST"/>, <xref target="EDOCEO"/>, <xref target="CSVW"/> and <xref target="ART"/>)), prior to publication
of <xref target="RFC4180"/> there is no attempt to provide a common specification. This section documents
the format that seems to be followed by most implementations (incorporating
changes since the publication of <xref target="RFC4180"/>).</t>
      <section anchor="high-level-description">
        <name>High level description</name>
        <ol spacing="normal" type="1"><li>
            <t>Each record is located on a separate line, ended by a line break (CR, LF or CRLF). For example:  </t>
            <t>
aaa,bbb,cccCRLF<br/>
zzz,yyy,xxxCRLF</t>
          </li>
          <li>
            <t>The last record in the file MUST have an ending line break. For example:  </t>
            <t>
aaa,bbb,cccCRLF<br/>
zzz,yyy,xxxCRLF</t>
          </li>
          <li>
            <t>The first record in the file MAY be an optional header
with the same format as normal records. This
header will contain names corresponding to the fields in the file
and SHOULD contain the same number of fields as the records in
the rest of the file. For example:  </t>
            <t>
field_name_1,field_name_2,field_name_3CRLF<br/>
aaa,bbb,cccCRLF<br/>
zzz,yyy,xxxCRLF</t>
          </li>
          <li>
            <t>Within each record, there MAY be one or more
fields, separated by commas. Each record SHOULD contain the same
number of fields throughout the file. Spaces are considered part
of a field and SHOULD NOT be ignored. The last field in the
record MUST NOT be followed by a comma. For example:  </t>
            <t>
aaa,bbb,cccCRLF</t>
          </li>
          <li>
            <t>Each field MAY be enclosed in double quotes (however
some programs, do not use double quotes at all). If fields are not
enclosed with double quotes, then double quotes MUST NOT appear inside the fields.
For example:  </t>
            <t>
"aaa","bbb","ccc"CRLF<br/>
zzz,yyy,xxxCRLF</t>
          </li>
          <li>
            <t>Fields containing line breaks (CR, LF or CRLF), double quotes, or commas
MUST be enclosed in double-quotes. The same applies for the first field of
a record that starts with a hash to avoid the field from being parsed as a comment.
For example:  </t>
            <t>
"aaa","b CRLF<br/>
bb","ccc"CRLF<br/>
zzz,yyy,xxxCRLF<br/>
"#aaa",#bbb,cccCRLF</t>
          </li>
          <li>
            <t>A double-quote appearing inside a field MUST be escaped by preceding it with
another double quote. For example:  </t>
            <t>
"aaa","b""bb","ccc"CRLF</t>
          </li>
          <li>
            <t>A hash sign MAY be used to mark lines that are meant to be commented lines.
A commented line can contain any whitespace or visible character until it is
terminated by a line break (CR, LF or CRLF).
A comment line MAY appear in any line of the file (before or after an
OPTIONAL header) but MUST NOT be mistaken with a subsequent line of a multi-line
field. Subsequent lines of multi-line fields can start with a hash sign and
MUST NOT interpreted as comments. For example:  </t>
            <t>
#commentCRLF<br/>
 aaa,bbb,cccCRLF<br/>
 #comment 2CRLF<br/>
 "aaa","this is CRLF<br/>
 # not a comment","ccc"CRLF</t>
          </li>
        </ol>
      </section>
      <section anchor="default-charset-and-line-break-values">
        <name>Default charset and line break values</name>
        <t>Since the initial publication of <xref target="RFC4180"/>, the default charset for "text/*" media types
has been changed to UTF-8 (as per <xref target="RFC6657"/>) and <xref target="RFC7111"/>.
This document reflects this change and the default charset for CSV files is now UTF-8.</t>
        <t>Although section 4.1.1. of <xref target="RFC2046"/> defines CRLF to denote line breaks,
implementers MAY recognize a single CR or LF as a line break (similar to section 3.1.1.3
of <xref target="RFC7231"/>). However, some implementations MAY use other values.</t>
      </section>
      <section anchor="abnf-grammar">
        <name>ABNF Grammar</name>
        <t>The ABNF grammar (as per <xref target="RFC5234"/>) appears as follows:</t>
        <artwork><![CDATA[
file = *((comment / record) linebreak)

comment = hash *comment-data

record = first-field *(comma field)

linebreak = CR / LF / CRLF

first-field = (escaped / first-non-escaped)

field = (escaped / non-escaped)

escaped = DQUOTE *(data-with-hash / comma / CR / LF / 2DQUOTE) DQUOTE

first-non-escaped = [data *data-with-hash]

non-escaped = *data-with-hash

comma = %x2C

hash = %x23

comment-data = WSP / %x21-7E / UTF8-data
         ; characters without control characters

data = WSP / %x21 / %x24-2B / %x2D-7E / UTF8-data
         ; characters without control characters, comma, hash and DQUOTE

data-with-hash = data / hash

CR = %x0D ; as per section B.1 of [RFC5234]

DQUOTE = %x22 ; as per section B.1 of [RFC5234]

LF = %x0A ; as per section B.1 of [RFC5234]

CRLF = CR LF ; as per section B.1 of [RFC5234]

HTAB = %x09 ; as per section B.1 of [RFC5234]

SP = %x20 ; as per section B.1 of [RFC5234]

WSP = SP / HTAB ; as per section B.1 of [RFC5234]

UTF8-data = UTF8-2 / UTF8-3 / UTF8-4 ; as per section 4 of [RFC3629]
]]></artwork>
        <t>Note that the authoritative definition of UTF-8 is in section 2.5 of <xref target="UNICODE"/>.</t>
      </section>
    </section>
    <section anchor="common-implementation-concerns">
      <name>Common implementation concerns</name>
      <t>This section describes some common concerns that may arise when
producing or parsing CSV files. All of these remain out of scope for this document
and are included for awareness. Implementers may also use other means to handle
these use cases such as <xref target="CSVW"/>.</t>
      <section anchor="null-values">
        <name>Null values</name>
        <t>Some implementations (such as databases) treat empty fields and null values differently.
For these implementations, there is a need to define a special value representing
a null. However, this specification does not attempt to define a default value
for nulls.</t>
        <t>Example of a CSV file with nulls (if "NULL" is used to mark nulls):</t>
        <t>field_name_1,field_name_2,field_name_3CRLF<br/>
   aaa,bbb,cccCRLF<br/>
   zzz,NULL,xxxCRLF</t>
      </section>
      <section anchor="empty-files">
        <name>Empty files</name>
        <t>Implementers should be aware that in accordance to this specification a file
does not need to contain any comments or records. Therefore, an empty file with
zero bytes is considered valid.</t>
      </section>
      <section anchor="empty-lines">
        <name>Empty lines</name>
        <t>This specification recommends but doesn't require having the same number of fields
in every line. This allows CSV files to have empty lines without
any fields at all. Implementors may choose to to skip empty lines
instead of parsing them but this specification does not dictate such behavior.</t>
        <t>Example of a CSV file with empty lines:</t>
        <t>field_name_1,field_name_2,field_name_3CRLF<br/>
   aaa,bbb,cccCRLF<br/>
   CRLF<br/>
   zzz,yyy,xxxCRLF</t>
        <t>However, if the records are only made up of one field it is not possible to
differentiate between an empty line, and an empty and unquoted field. This
differentiation might play an important role in some implementations such
as database exports/imports.</t>
        <t>Example of a CSV file with empty lines and only one field per record:</t>
        <t>aaa<br/>
CRLF<br/>
bbbCRLF</t>
      </section>
      <section anchor="fields-spanning-multiple-lines">
        <name>Fields spanning multiple lines</name>
        <t>When quoted fields are used, it is possible for a field to span multiple lines,
even when line breaks appear within such field.</t>
      </section>
      <section anchor="unique-header-names">
        <name>Unique header names</name>
        <t>Implementers should be aware that some applications may treat header values as unique
(either case-sensitive or case-insensitive).</t>
      </section>
      <section anchor="whitespace-outside-of-quoted-fields">
        <name>Whitespace outside of quoted fields</name>
        <t>When quoted fields are used, this document does not allow whitespace
between double quotes and commas. Implementers should be aware that some applications
may be more lenient and allow whitespace outside the double quotes.</t>
      </section>
      <section anchor="other-field-separators">
        <name>Other field separators</name>
        <t>This document defines a comma as a field separator but implementers should be aware
that some applications may use different values, especially with non-English languages.
Those are outside the scope of this document and implementers should consult other
efforts such as <xref target="CSVW"/>.</t>
      </section>
      <section anchor="escaping-double-quotes">
        <name>Escaping double quotes</name>
        <t>This document prescribes that a double-quote appearing inside a field
must be escaped by preceding it with another double quote. Implementers should
be aware that some applications may choose to use a different escaping mechanism.</t>
      </section>
      <section anchor="bom-header">
        <name>BOM header</name>
        <t>Applications that create text files with unicode character encoding might write
a BOM (byte order mark) header in order to support multiple unicode encodings
(like UTF-16 and UTF-32). Some applications might be able to read and properly
interpret such a header, others could break. Implementors should review
section 6 of <xref target="RFC3629"/> and section 23.8 of <xref target="UNICODE"/>.</t>
      </section>
      <section anchor="bidirectional-text">
        <name>Bidirectional text</name>
        <t>While most of the world's written languages are displayed left-to-right,
many languages such as ones based on Hebrew or Arabic scripts are displayed
primarily right-to-left. Implementers should consult the "bidirectional display"
part in section 5 of <xref target="RFC6365"/> for further guidance.</t>
      </section>
    </section>
    <section anchor="registration">
      <name>Update to MIME Type Registration of text/csv</name>
      <t>The media type registration of "text/csv" should be updated as per specific
fields below:</t>
      <t>Encoding considerations:</t>
      <ul empty="true">
        <li>
          <t>CSV MIME entities can consist of binary data
as per section 4.8 of <xref target="RFC6838"/>. Although section 4.1.1. of <xref target="RFC2046"/> defines
CRLF to denote line breaks, implementers MAY recognize a single CR or LF
as a line break (similar to section 3.1.1.3 of <xref target="RFC7231"/>).
However, some implementations may use other values.</t>
        </li>
      </ul>
      <t>Published specification:</t>
      <ul empty="true">
        <li>
          <t>While numerous private specifications exist for various programs
and systems, there is no single "master" specification for this
format. An attempt at a common definition can be found in <xref target="RFC4180"/>
and this document. Implementers should note that both documents are informational
in nature and are not standards.</t>
        </li>
      </ul>
      <t>Optional parameters:  charset</t>
      <ul empty="true">
        <li>
          <t>The "charset" parameter specifies the charset employed by the
CSV content. In accordance with <xref target="RFC6657"/>, the
charset parameter SHOULD be used, and if it is not present,
UTF-8 SHOULD be assumed as the default (this implies that US-
ASCII CSV will work, even when not specifying the "charset"
parameter). Any charset defined by IANA for the "text" tree
may be used in conjunction with the "charset" parameter.</t>
        </li>
      </ul>
      <t>Security considerations:</t>
      <ul empty="true">
        <li>
          <t>Text/csv consists of nothing but passive text data that should
not pose any direct risks.  However, it is possible that
malicious data may be included in order to exploit buffer
overruns or other bugs in the program processing the text/csv
data.</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>Implementers and users should also be aware that some software
applications may interpret certain characters in the beginning of CSV
fields as referring to code or formulas, thus resulting in malicious
code execution. This is known as "CSV injection" and users consuming
CSV files should filter out such characters.</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>The text/csv format provides no confidentiality or integrity
protection, so if such protections are needed they must be
supplied externally.</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>The fact that software implementing fragment identifiers for
CSV and software not implementing them differs in behavior, and
the fact that different software may show documents or
fragments to users in different ways, can lead to
misunderstandings on the part of users.  Such misunderstandings
might be exploited in a way similar to spoofing or phishing.</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>Implementers and users of fragment identifiers for CSV text
should also be aware of the security considerations in RFC 3986
<xref target="RFC3986"/> and RFC 3987 <xref target="RFC3987"/>.</t>
        </li>
      </ul>
      <t>Interoperability considerations:</t>
      <ul empty="true">
        <li>
          <t>Due to lack of a single specification, there are considerable differences among
implementations. Implementers should "be conservative in what you
do, be liberal in what you accept from others" (<xref target="RFC0793"/>)
when processing CSV files. An attempt at a common definition can
be found in Section 2.</t>
        </li>
      </ul>
      <section anchor="iana-considerations">
        <name>IANA Considerations</name>
        <t>IANA is directed to update the MIME type registration for "text/csv"
as per instructions provided in <xref target="registration"/> of this document
and include a reference to this document within the registration.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>All security considerations discussed in <xref target="registration"/> still apply.</t>
    </section>
    <section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>In addition to everyone thanked previously in <xref target="RFC4180"/>, the author would like to thank
acknowledge the contributions of the following people to this document:
Alperen Belgic, Abed BenBrahim, Damon Koach, Barry Leiba,
Oliver Siegmar, Marco Diniz Sousa and Greg Skinner.</t>
      <t>A special thank you to L.T.S.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC4180" target="https://www.rfc-editor.org/info/rfc4180" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4180.xml">
          <front>
            <title>Common Format and MIME Type for Comma-Separated Values (CSV) Files</title>
            <author fullname="Y. Shafranovich" initials="Y." surname="Shafranovich"/>
            <date month="October" year="2005"/>
            <abstract>
              <t>This RFC documents the format used for Comma-Separated Values (CSV) files and registers the associated MIME type "text/csv".  This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4180"/>
          <seriesInfo name="DOI" value="10.17487/RFC4180"/>
        </reference>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized.  This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC6657" target="https://www.rfc-editor.org/info/rfc6657" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6657.xml">
          <front>
            <title>Update to MIME regarding "charset" Parameter Handling in Textual Media Types</title>
            <author fullname="A. Melnikov" initials="A." surname="Melnikov"/>
            <author fullname="J. Reschke" initials="J." surname="Reschke"/>
            <date month="July" year="2012"/>
            <abstract>
              <t>This document changes RFC 2046 rules regarding default "charset" parameter values for "text/*" media types to better align with common usage by existing clients and servers. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6657"/>
          <seriesInfo name="DOI" value="10.17487/RFC6657"/>
        </reference>
        <reference anchor="RFC7111" target="https://www.rfc-editor.org/info/rfc7111" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7111.xml">
          <front>
            <title>URI Fragment Identifiers for the text/csv Media Type</title>
            <author fullname="M. Hausenblas" initials="M." surname="Hausenblas"/>
            <author fullname="E. Wilde" initials="E." surname="Wilde"/>
            <author fullname="J. Tennison" initials="J." surname="Tennison"/>
            <date month="January" year="2014"/>
            <abstract>
              <t>This memo defines URI fragment identifiers for text/csv MIME entities.  These fragment identifiers make it possible to refer to parts of a text/csv MIME entity identified by row, column, or cell.  Fragment identification can use single items or ranges.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7111"/>
          <seriesInfo name="DOI" value="10.17487/RFC7111"/>
        </reference>
        <reference anchor="RFC2046" target="https://www.rfc-editor.org/info/rfc2046" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2046.xml">
          <front>
            <title>Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types</title>
            <author fullname="N. Freed" initials="N." surname="Freed"/>
            <author fullname="N. Borenstein" initials="N." surname="Borenstein"/>
            <date month="November" year="1996"/>
            <abstract>
              <t>This second document defines the general structure of the MIME media typing system and defines an initial set of media types. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2046"/>
          <seriesInfo name="DOI" value="10.17487/RFC2046"/>
        </reference>
        <reference anchor="RFC7231" target="https://www.rfc-editor.org/info/rfc7231" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7231.xml">
          <front>
            <title>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
            <date month="June" year="2014"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless \%application- level protocol for distributed, collaborative, hypertext information systems.  This document defines the semantics of HTTP/1.1 messages, as expressed by request methods, request header fields, response status codes, and response header fields, along with the payload of messages (metadata and body content) and mechanisms for content negotiation.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7231"/>
          <seriesInfo name="DOI" value="10.17487/RFC7231"/>
        </reference>
        <reference anchor="RFC5234" target="https://www.rfc-editor.org/info/rfc5234" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5234.xml">
          <front>
            <title>Augmented BNF for Syntax Specifications: ABNF</title>
            <author fullname="D. Crocker" initials="D." role="editor" surname="Crocker"/>
            <author fullname="P. Overell" initials="P." surname="Overell"/>
            <date month="January" year="2008"/>
            <abstract>
              <t>Internet technical specifications often need to define a formal syntax.  Over the years, a modified version of Backus-Naur Form (BNF), called Augmented BNF (ABNF), has been popular among many Internet specifications.  The current specification documents ABNF.  It balances compactness and simplicity with reasonable representational power.  The differences between standard BNF and ABNF involve naming rules, repetition, alternatives, order-independence, and value ranges.  This specification also supplies additional rule definitions and encoding for a core lexical analyzer of the type common to several Internet specifications. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="68"/>
          <seriesInfo name="RFC" value="5234"/>
          <seriesInfo name="DOI" value="10.17487/RFC5234"/>
        </reference>
        <reference anchor="RFC6838" target="https://www.rfc-editor.org/info/rfc6838" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6838.xml">
          <front>
            <title>Media Type Specifications and Registration Procedures</title>
            <author fullname="N. Freed" initials="N." surname="Freed"/>
            <author fullname="J. Klensin" initials="J." surname="Klensin"/>
            <author fullname="T. Hansen" initials="T." surname="Hansen"/>
            <date month="January" year="2013"/>
            <abstract>
              <t>This document defines procedures for the specification and registration of media types for use in HTTP, MIME, and other Internet protocols.  This memo documents an Internet Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="13"/>
          <seriesInfo name="RFC" value="6838"/>
          <seriesInfo name="DOI" value="10.17487/RFC6838"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="ART" target="http://www.catb.org/~esr/writings/taoup/html/ch05s02.html">
          <front>
            <title>The Art of Unix Programming, Chapter 5</title>
            <author initials="E." surname="Raymond" fullname="E. Raymond">
              <organization/>
            </author>
            <date year="2003" month="September"/>
          </front>
        </reference>
        <reference anchor="CREATIVYST" target="https://www.creativyst.com/Doc/Articles/CSV/CSV01.htm">
          <front>
            <title>HOW-TO: The Comma Separated Value (CSV) File Format</title>
            <author initials="J." surname="Repici" fullname="J. Repici">
              <organization>Creativyst, Inc.</organization>
            </author>
            <date year="2010"/>
          </front>
        </reference>
        <reference anchor="CSVW" target="https://www.w3.org/TR/tabular-data-model/">
          <front>
            <title>Model for Tabular Data and Metadata on the Web</title>
            <author>
              <organization>W3C</organization>
            </author>
            <date year="2015" month="December"/>
          </front>
        </reference>
        <reference anchor="EDOCEO" target="https://edoceo.com/dev/csv-file-format">
          <front>
            <title>Comma Separated Values (CSV) Standard File Format</title>
            <author>
              <organization>Edoceo, Inc.</organization>
            </author>
            <date year="2020"/>
          </front>
        </reference>
        <reference anchor="UNICODE" target="https://www.unicode.org/versions/Unicode15.0.0/">
          <front>
            <title>The Unicode Standard, Version 15.0.0</title>
            <author>
              <organization>The Unicode Consortium</organization>
            </author>
            <date year="2022" month="September"/>
          </front>
        </reference>
        <reference anchor="RFC1796" target="https://www.rfc-editor.org/info/rfc1796" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.1796.xml">
          <front>
            <title>Not All RFCs are Standards</title>
            <author fullname="C. Huitema" initials="C." surname="Huitema"/>
            <author fullname="J. Postel" initials="J." surname="Postel"/>
            <author fullname="S. Crocker" initials="S." surname="Crocker"/>
            <date month="April" year="1995"/>
            <abstract>
              <t>This document discusses the relationship of the Request for Comments (RFCs) notes to Internet Standards.  This memo provides information for the Internet community.  This memo does not specify an Internet standard of any kind.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="1796"/>
          <seriesInfo name="DOI" value="10.17487/RFC1796"/>
        </reference>
        <reference anchor="RFC2026" target="https://www.rfc-editor.org/info/rfc2026" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2026.xml">
          <front>
            <title>The Internet Standards Process -- Revision 3</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="October" year="1996"/>
            <abstract>
              <t>This memo documents the process used by the Internet community for the standardization of protocols and procedures.  It defines the stages in the standardization process, the requirements for moving a document between stages and the types of documents used during this process.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="9"/>
          <seriesInfo name="RFC" value="2026"/>
          <seriesInfo name="DOI" value="10.17487/RFC2026"/>
        </reference>
        <reference anchor="RFC3629" target="https://www.rfc-editor.org/info/rfc3629" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3629.xml">
          <front>
            <title>UTF-8, a transformation format of ISO 10646</title>
            <author fullname="F. Yergeau" initials="F." surname="Yergeau"/>
            <date month="November" year="2003"/>
            <abstract>
              <t>ISO/IEC 10646-1 defines a large character set called the Universal Character Set (UCS) which encompasses most of the world's writing systems.  The originally proposed encodings of the UCS, however, were not compatible with many current applications and protocols, and this has led to the development of UTF-8, the object of this memo.  UTF-8 has the characteristic of preserving the full US-ASCII range, providing compatibility with file systems, parsers and other software that rely on US-ASCII values but are transparent to other values.  This memo obsoletes and replaces RFC 2279.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="63"/>
          <seriesInfo name="RFC" value="3629"/>
          <seriesInfo name="DOI" value="10.17487/RFC3629"/>
        </reference>
        <reference anchor="RFC6365" target="https://www.rfc-editor.org/info/rfc6365" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6365.xml">
          <front>
            <title>Terminology Used in Internationalization in the IETF</title>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <author fullname="J. Klensin" initials="J." surname="Klensin"/>
            <date month="September" year="2011"/>
            <abstract>
              <t>This document provides a list of terms used in the IETF when discussing internationalization.  The purpose is to help frame discussions of internationalization in the various areas of the IETF and to help introduce the main concepts to IETF participants.  This memo documents an Internet Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="166"/>
          <seriesInfo name="RFC" value="6365"/>
          <seriesInfo name="DOI" value="10.17487/RFC6365"/>
        </reference>
        <reference anchor="RFC3986" target="https://www.rfc-editor.org/info/rfc3986" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3986.xml">
          <front>
            <title>Uniform Resource Identifier (URI): Generic Syntax</title>
            <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
            <author fullname="R. Fielding" initials="R." surname="Fielding"/>
            <author fullname="L. Masinter" initials="L." surname="Masinter"/>
            <date month="January" year="2005"/>
            <abstract>
              <t>A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource.  This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet.  The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier.  This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="66"/>
          <seriesInfo name="RFC" value="3986"/>
          <seriesInfo name="DOI" value="10.17487/RFC3986"/>
        </reference>
        <reference anchor="RFC3987" target="https://www.rfc-editor.org/info/rfc3987" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3987.xml">
          <front>
            <title>Internationalized Resource Identifiers (IRIs)</title>
            <author fullname="M. Duerst" initials="M." surname="Duerst"/>
            <author fullname="M. Suignard" initials="M." surname="Suignard"/>
            <date month="January" year="2005"/>
            <abstract>
              <t>This document defines a new protocol element, the Internationalized Resource Identifier (IRI), as a complement of the Uniform Resource Identifier (URI). An IRI is a sequence of characters from the Universal Character Set (Unicode/ISO 10646). A mapping from IRIs to URIs is defined, which means that IRIs can be used instead of URIs, where appropriate, to identify resources.</t>
              <t>The approach of defining a new protocol element was chosen instead of extending or changing the definition of URIs. This was done in order to allow a clear distinction and to avoid incompatibilities with existing software. Guidelines are provided for the use and deployment of IRIs in various protocols, formats, and software components that currently deal with URIs.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3987"/>
          <seriesInfo name="DOI" value="10.17487/RFC3987"/>
        </reference>
        <reference anchor="RFC0793" target="https://www.rfc-editor.org/info/rfc793" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.0793.xml">
          <front>
            <title>Transmission Control Protocol</title>
            <author fullname="J. Postel" initials="J." surname="Postel"/>
            <date month="September" year="1981"/>
          </front>
          <seriesInfo name="RFC" value="793"/>
          <seriesInfo name="DOI" value="10.17487/RFC0793"/>
        </reference>
      </references>
    </references>
    <section anchor="major-changes-since-rfc4180">
      <name>Major changes since <xref target="RFC4180"/></name>
      <ul spacing="normal">
        <li>Added a section clarifying motivation for this document and standards status</li>
        <li>Changing default encoding to UTF-8 and adding Unicode to the ABNF grammar</li>
        <li>Allowing CR, LF and CRLF for line breaks</li>
        <li>Allowing HTAB in text data</li>
        <li>Mandating a line break at the end of the last line in the file</li>
        <li>Making records and headers optional, thus allowing for an empty file</li>
        <li>Adding definition of commented lines</li>
        <li>Adding a section on common implementation concerns</li>
        <li>Removed "header" parameter for the MIME type since it is not used</li>
      </ul>
    </section>
    <section anchor="changes-since-the-00-draft">
      <name>Changes since the -00 draft</name>
      <ul spacing="normal">
        <li>Added CSV injection to security considerations (#30</li>
        <li>Added a reference to RFC 7111 (#27)</li>
      </ul>
    </section>
    <section anchor="changes-since-the-01-draft">
      <name>Changes since the -01 draft</name>
      <ul spacing="normal">
        <li>No changes yet, refreshed to keep draft alive</li>
      </ul>
    </section>
    <section anchor="changes-since-the-02-draft">
      <name>Changes since the -02 draft</name>
      <ul spacing="normal">
        <li>Refreshed to keep draft alive</li>
        <li>Contact information and Github link changes</li>
        <li>Minor updates on language</li>
        <li>Added a section on bidi handling</li>
      </ul>
    </section>
    <section anchor="note-to-readers">
      <name>Note to Readers</name>
      <ul empty="true">
        <li>
          <t><strong>Note to the RFC Editor:</strong> Please remove this section prior
to publication.</t>
        </li>
      </ul>
      <t>Development of this draft takes place on Github at: https://github.com/yakovsh/rfc4180-bis</t>
      <t>Comments can also be sent to the ART mailing list at: https://www.ietf.org/mailman/listinfo/art</t>
      <t>Full list of changes can be viewed via the IETF document tracker:
https://tools.ietf.org/html/draft-shafranovich-rfc4180-bis</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
YbPK2ty12/ErzQ+/rZ78DwRC5ec4PwAA

-->

</rfc>
