java中的opencsv忽略字段值中的反斜杠

我正在使用opencsv读取csv文件。

我无视第一行; csv文件是制表符分隔的,其中一些值用双引号括起来。

当我读取具有’\’字符的列的值时,会发生此问题,这会从值中删除。

reader = new CSVReader(new FileReader(exchFileObj),'\t','"',1); 

例如在原始文件中:

 address = 12\91buenosaires 

它变成:

 address = 1291buenosiares 

csvreader生成的字符串数组中。 如何修改它以便能够读取’\’字符?

CSVReader还有一个构造函数 ,您可以通过它来设置要使用的转义字符。 如果你使用它并将转义字符设置为你不使用的东西,你将在输入中得到反斜杠字符。

我有同样的问题,找不到另一个我可以保证不会出现在我的csv文件中的角色。 根据sourceforge上的一篇文章,您可以使用带有’\ 0’的显式构造函数来指示您不需要任何转义字符。

http://sourceforge.net/tracker/?func=detail&aid=2983890&group_id=148905&atid=773542

 CSVParser parser = new CSVParser(CSVParser.DEFAULT_SEPARATOR, CSVParser.DEFAULT_QUOTE_CHARACTER, '\0', CSVParser.DEFAULT_STRICT_QUOTES); 

我做了一些粗略的测试,这似乎工作得很好,至少反斜杠肯定能够通过。

除了@JMM的答案,你必须在CSVReader的构造函数中使用这个创建的CSVParser。 唯一可用的构造函数是:

 public CSVReader(Reader reader, int line, CSVParser csvParser) 

您可以将该行设置为0,以便它不会跳过任何内容