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

2022-09-03 04:52:13

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

我忽略了第一行;csv 文件以制表符分隔,一些值括在双引号中。

当我读取具有“\”字符的列的值时,会出现此问题,这会从值中剥离出来。

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

例如,在原始文件中:

address = 12\91buenosaires   

它变成:

address = 1291buenosiares

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


答案 1

我遇到了同样的问题,找不到另一个我可以保证不会出现在我的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);

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


答案 2

CSVReader还具有解析器构建器,您可以通过它设置要使用的转义字符。如果您使用它并将转义字符设置为不使用的内容,您将在输入中获得反斜杠字符。


推荐