如何转义CSV文件中的逗号?

ct2axkht  于 2023-01-18  发布在  其他
关注(0)|答案(1)|浏览(236)

我有一个包含“”的字符串,需要将其序列化/反序列化为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、“test 2\、test 3”、test 4,我认为它们是正确的
然后我试着反序列化它:

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

我怎么能反序列化它回到

test1
test2, test3
test4

谢谢

8fsztsew

8fsztsew1#

根据RFC 4180
包含换行符(CRLF)、双引号和逗号的字段应该用双引号括起来。
因此,有效的csv内容必须是:

test1
"test2, test3"
test4

相关问题