CSV文件包含两种数据(错误):
1. "ABC\"
2. "ABC\""
当我在opencsv中指定不考虑任何转义序列时,第一个场景有效,但第二个场景失败,因为它以两个双引号结束。
当我将另一个字符指定为转义序列时,第一个方案再次起作用,但第二个方案失败,因为它以两个双引号结束。
我的唯一目标是解析这些数据,它可以将其解析为ABC
,ABC\
或ABC\"
。
非常感谢任何帮助。
答案 0 :(得分:0)
openCSV与RFC4180Parser(或任何兼容RFC4180的java csv解析器库)应将第一个解析为ABC \,第二个解析为ABC \“。
那说如果你知道的数据很糟糕并且你不想在最终输出中使用它那么你应该遵循Brahma的建议,因为应用程序负责处理坏数据,因为你可能不喜欢库处理的方式(或错误处理)它。
:)
你将不得不提供一个代码示例,因为我编写了以下测试并且它通过了(我的结果是ABC \和ABC \“):
@Unroll
def 'sof request - parsing #value yields #expected'(String value, String expected) {
given:
RFC4180ParserBuilder builder = new RFC4180ParserBuilder()
RFC4180Parser parser = builder.build()
String[] parsedValues = parser.parseLine(value)
expect:
parsedValues.length == 1
parsedValues[0] == expected
where:
value | expected
"\"ABC\\\"" | "ABC\\"
"\"ABC\\\"\"" | "ABC\\\""
}