オープンcsvでも同じ問題に直面しており、問題を修正するためにエスケープ文字を使用しています。
例:
CSVReader csvReader = new CSVReader(new FileReader(fileName), seprator,escaped_character);
ここで開いているcsvのデフォルトでは、escape_characterとして二重引用符を使用します(私の知る限り)
私の場合、セパレーターをパイプ記号 (|) として使用します
A2|GAA|Thilina|9022V|1|2|3|4|"Rubasingha"|'Abc|MATARA"|'いいえ'|2012|1668.88
ここで"Rubasingha"は二重引用符を開閉し、'No'も一重引用符を開閉します。これら2つは、デフォルトのオープンcsvで完全に機能します
しかし、'Abcを使用する場合- 一重引用符のみを開いてください - これも問題なく動作します
しかし、MATARA" OR "MATARA - ここには二重引用符が 1 つあります - 私の場合、open csv を使用して CSV を読み取るときにエラーが発生します
問題を修正するには、このページを参照します ( http://cs.swan.ac.uk/~csbob/teaching/java/JavaDemoNetbeans/opencsv-2.3/doc/ )
独自の区切り文字と引用符文字を提供するコンストラクターがあります。セパレーターにタブを使用しているとします。次のようなことができます。
CSVReader reader = new CSVReader(new FileReader("yourfile.csv"), '\t');
また、エスケープ文字を二重引用符ではなく単一引用符で囲んだ場合は、3 つの引数のコンストラクターを使用できます。
CSVReader reader = new CSVReader(new FileReader("yourfile.csv"), '\t', '\'');
ファイルの後半までコンテンツが開始されないことがわかっている場合は、ファイルの最初の数行をスキップすることもできます。したがって、たとえば、次のようにして最初の 2 行をスキップできます。
CSVReader reader = new CSVReader(new FileReader("yourfile.csv"), '\t', '\'', 2);
そのため、二重引用符をエスケープ文字として使用せずに、デフォルトのエスケープ文字を (^) 記号に変更します。
CSVReader csvReader = new CSVReader(new FileReader(fileName), '|','^');
これが私が問題を解決する方法です。ありがとう