我有一个包含“”的字符串,需要将其序列化/反序列化为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
谢谢
1条答案
按热度按时间8fsztsew1#
根据RFC 4180:
包含换行符(CRLF)、双引号和逗号的字段应该用双引号括起来。
因此,有效的csv内容必须是: