Please see the standard rfc4180.
As it states, there is no formal specification for CSV. Rather, there are many different file formats called by the common name CSV. What format is meant by the name "CSV" depends on the program you use.
While there are various specifications and implementations for the
CSV format (for ex. [4], [5], [6] and [7]), there is no formal
specification in existence, which allows for a wide variety of
interpretations of CSV files.
[4] Repici, J., "HOW-TO: The Comma Separated Value (CSV) File
Format", 2004,
http://www.creativyst.com/Doc/Articles/CSV/CSV01.htm.
[5] Edoceo, Inc., "CSV Standard File Format", 2004,
http://www.edoceo.com/utilis/csv-file-format.php.
[6] Rodger, R. and O. Shanaghy, "Documentation for Ricebridge CSV
Manager", February 2005,
http://www.ricebridge.com/products/csvman/reference.htm.
[7] Raymond, E., "The Art of Unix Programming, Chapter 5", September 2003,
http://www.catb.org/~esr/writings/taoup/html/ch05s02.html.
But it does give a common solution
Fields containing line breaks (CRLF), double quotes, and commas
should be enclosed in double-quotes. For example:
"aaa","b CRLF
bb","ccc" CRLF
zzz,yyy,xxx
If double-quotes are used to enclose fields, then a double-quote
appearing inside a field must be escaped by preceding it with
another double quote. For example:
"aaa","b""bb","ccc"