【问题标题】:OpenCSV reads strange text out of fileOpenCSV 从文件中读取奇怪的文本
【发布时间】:2019-02-22 14:26:10
【问题描述】:

我正在使用 AndroidStudio,我的应用程序必须读取如下所示的 CSV 文件:

"Anmeldung";"1576017126809898";"1547126680978123";"";"";"Frau"
"Anmeldung";"1547126680911112";"1547126680978123";"";"";"Frau"

但正如您在下图中看到的,OpenCSV 读取了一些奇怪的字符,并且在我的列表中有一些没有意义的字符串,它们不在它读取的文件中

这就是我从文件中读取数据的方式:

        try {
        FileReader filereader = new FileReader(filePath);
        CSVParser parser = new CSVParserBuilder().withSeparator(';').build();

        CSVReader csvReader = new CSVReaderBuilder(filereader)
                .withSkipLines(1)
                .withCSVParser(parser)
                .build();
        List<String[]> allData = csvReader.readAll();
        MainActivity.setAllData(allData);

    }
    catch (Exception e) {
        e.printStackTrace();
    }

谢谢

【问题讨论】:

    标签: java android csv file-handling opencsv


    【解决方案1】:

    好像有编码问题。

    确保使用正确的编码(例如 utf-8 或 utf-16)打开和解析文件。查看数据也一样。

    【讨论】:

    • 我已经仔细检查了所有编码(编辑器和阅读器),一切都配置了 utf-8。看来 csvreader 确实读错了我的文件
    • @peldaftw 我的意思是“例如”utf-8(或文件的任何编码)。
    【解决方案2】:

    我想通了。听起来可能很奇怪,但我拿走了文件并全部替换了;和 ; 我认为我得到的数据是使用 UTF-16 编码或从 linux 设备导出的。

    tl;dr 文件的编码错误。而且我打开和查看的方式是正确的

    【讨论】:

      猜你喜欢
      • 2022-11-07
      • 1970-01-01
      • 1970-01-01
      • 2012-03-22
      • 2023-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-22
      相关资源
      最近更新 更多