打开 CSV:如何在将 SQL 转储导出到 CSV 时转义逗号

Open CSV: How to escape comma while exporting SQL dump to CSV

我使用开放式 CSV 将 SQL 转储导出到 CSV。在其中一列中,我有很多逗号。在我导出到 CSV 后,数据在每个逗号上被分割。我怎样才能避开逗号?

    con = DriverManager.getConnection(url, user, password);
    pst = con.prepareStatement("SELECT * FROM Cars");
    rs = pst.executeQuery();

    writer = new CSVWriter(new FileWriter("cars.csv"), 
            DEFAULT_SEPARATOR, NO_QUOTE_CHARACTER);
    writer.writeAll(rs, true);

实际数据:

LINESTRING (184317.646019852 55192.7039821837, 184361.902992529 55174.2199648116)

我得到了什么

COLUMN-1                                            COLUMN-2
LINESTRING (184317.646019852 55192.7039821837      184361.902992529 55174.2199648116)

如果您真的想生成与 RFC 4180 标准兼容的 CSV:

6.  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

只需删除 NO_QUOTE_CHARACTER 选项。

此外,您应该找到另一个库,它可以生成与 CSV 不兼容的分隔格式(即,如果您想使用 \ 作为转义逗号而不是双引号)。