java - 使用 OpenCSV 写入 CSV 文件时双引号重复

标签 java opencsv

我正在尝试使用 OpenCSV 库编写一个简单的 CSVWriter 代码,但遇到了一个奇怪的问题。

Code:

public class Test {

    public static void main(String[] args) throws IOException {

       String[] header = {"ONE", "\"TWO\"", "\"THREE\"", "\"FOUR\""};

       CSVWriter writer = new CSVWriter(new FileWriter("C:/test.csv"), '|', CSVWriter.NO_QUOTE_CHARACTER);

       writer.writeNext(header);

       writer.flush();       
       writer.close();
    }
}

Expected Output:

一个|“两个”|“三个”|“四个”

Real Output:

一个|""两个""|""三个""|""四个""

正如我们所见,两个、三个和四个周围有双引号,但在输出中双引号重复

我不想要这个,已经尝试了几个选项和 CSVWriter 类的构造函数,但无法解决这个问题。

有人遇到过类似的问题或知道出路吗?

谢谢

最佳答案

得到它的工作,下面的构造函数工作:

CSVWriter writer = new CSVWriter(new FileWriter("C:/test.csv"), '|', CSVWriter.NO_QUOTE_CHARACTER, CSVWriter.NO_ESCAPE_CHARACTER);

原因我看到 CSVWriter 默认将 " 视为 Escape Character,因此如果它出现在 String 中,它将尝试使用DEFAULT_ESCAPE_CHARACTEREscape那个",它只是"本身。

通过传递 CSVWriter.NO_ESCAPE_CHARACTER,Writer 将无需担心检查Escapes 之间是否需要任何内容​​。

关于java - 使用 OpenCSV 写入 CSV 文件时双引号重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36752893/

相关文章:

java - 在 weblogic 10.3 服务器中重新部署版本化应用程序时出现错误

java - 在 Java Web 应用程序中将 sql2java.properties 放在哪里?

java - 使用php获取内存使用情况

java - OpenCSV - CsvReaderNullFieldIndicator 似乎没有什么区别

java - 在 Java 中运行 Javascript 表单请求

java - 调试在 Oracle JVM 中运行的 Java 代码

java - 如何从带注释的 java 类编写/生成 CSV 文件

java - 将字符串解析为日期格式

java - CSVReader 的 readNext() 函数不循环遍历 csv 的所有行 [编辑 : How to handle erroneous CSV (remove unescaped quotes)]

Java Opencsv 使用 csv 文件中的(名字中的双引号)和(名字中双引号中的逗号)列解析 csv