opencsv转义单引号和双引号

时间:2012-11-15 18:54:29

标签: java opencsv

我使用opencsv来读取csv文件。有时csv文件中有单引号或双引号。如何在不更改csv文件本身的数据的情况下阅读它们。

现在,如果我用两个单引号替换单引号,它可以正常工作,与双引号相同,用一个替换单个引号,它可以工作。但我不想触摸源文件。

要访问的代码如下

CSVReader reader = new CSVReader(new InputStreamReader(new FileInputStream(file), "UTF-8"), delimiter,'\"',0);
data = a1;b1;c1;hello"world;d1;e1
       a2;b3;c2;hello"world;d2;e2
; is the delimiter

这样的结果是下一行也包含一个双引号被跳过,所有奇数行被插入到跳过偶数行的地方

提前致谢

2 个答案:

答案 0 :(得分:1)

结束使用javacsv。没有任何问题

答案 1 :(得分:1)

解决方案1:您可以做的一件事,假设您不想在输出文件中使用双课程/单一课程。

  1. 阅读完整文件并用空格替换所有不需要的特殊字符。 (这很简单,使用正则表达式)
  2. 现在使用CSVReader读取文件。
  3. 解决方案2:如果你想保留所有特殊字符,那就放一个" \"特殊字符前的反弹。然后阅读它。