繁体   English   中英

如何在CSV文件中转义逗号

[英]how to escape comma in CSV file

我有包含“,”的字符串,需要将其序列化/反序列化为CSV。 我已经能够正确地序列化它,但是在反序列化时,它总是错误的。 这是我在Java中的代码

List<String> header = ...
test1,
test2, test3  <-- string contains comma ,
test4

List<String> updatedHeaderList = Lists.transform(headerList, new Function<String, String> () {
            public String apply(String input) {
                return  StringEscapeUtils.escapeCsv(input);
            }
        });

Joiner joiner = Joiner.on(separator);
        stringBuilder = joiner.appendTo(stringBuilder, updatedHeaderList);
        stringBuilder.append("\n");
        return stringBuilder.toString();

当我检查序列化的字符串时,它是:test1,“ test2 \\,test3”,test4

然后我试图反序列化它:

Splitter.on(",").splitToList(resultString) 
it returned list as 
test1, 
test2,
test3,
test4

我如何反序列化它

test1
test2, test3
test4 

谢谢

根据RFC 4180

包含换行符(CRLF),双引号和逗号的字段应用双引号引起来。

因此,有效的csv内容必须为:

test1
"test2, test3"
test4 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM