打开 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 不兼容的分隔格式(即,如果您想使用 \
作为转义逗号而不是双引号)。
我使用开放式 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 不兼容的分隔格式(即,如果您想使用 \
作为转义逗号而不是双引号)。