Which program generated your CSV file? Why do you expect it parsed to no quotes at all?
According to https://tools.ietf.org/html/rfc4180#section-2 #2.5-7 > 5. Each field may or may not be enclosed in double quotes (however > some programs, such as Microsoft Excel, do not use double quotes > at all). If fields are not enclosed with double quotes, then > double quotes may not appear inside the fields. For example: > > "aaa","bbb","ccc" CRLF > zzz,yyy,xxx > > 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 > > 7. If double-quotes are used to enclose fields, then a double-quote > appearing inside a field must be escaped by preceding it with > another double quote. For example: > > "aaa","b""bb","ccc" According to this, both of these are valid 2120000,1596,4240000,9600,true 2120000,"1596",4240000,9600,true But your line seems to suggest that you want to escape a literal quote as a double-quote, but then the field must be enclosed in double quotes (have not tested this though). 2120000,""”1596""",4240000,9600,true -- Jan Høydahl, search solution architect Cominvent AS - www.cominvent.com > 11. nov. 2015 kl. 08.44 skrev Андрей <[email protected]>: > > Hello everyone, > > I've recently noticed a some bug, I suppose. I have the following csv file (2 > lines): > > DATA_SERVICE_ID,""DATA_SPEED_APID"",COMPONENT_ID,SPEED,SYNCHRONOUS > 2120000,""1596"",4240000,9600,true > > (The first line is a header) > > I'm trying to parse it via this configuration: > CSVFormat format = CSVFormat.newFormat(',').withQuote('"').withHeader(); > > Expected result: all headers and values without quotes > Actual result: Exception in thread "main" java.io.IOException: (line 1) > invalid char between encapsulated token and delimiter > at org.apache.commons.csv.Lexer.parseEncapsulatedToken(Lexer.java:275) > at org.apache.commons.csv.Lexer.nextToken(Lexer.java:152) > at org.apache.commons.csv.CSVParser.nextRecord(CSVParser.java:498) > at org.apache.commons.csv.CSVParser.initializeHeader(CSVParser.java:386) > at org.apache.commons.csv.CSVParser.<init>(CSVParser.java:283) > at org.apache.commons.csv.CSVParser.<init>(CSVParser.java:251) > at Runner.main(Runner.java:20) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:497) > at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140) > > Thanks ahead for any answers. > > Kulikov Andrey --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
