Apache Commons CSV 解析器:无法读取值

Apache Commons CSV parser: Not able to read the values

我正在使用 apache commons CSV 解析器将 CSV 转换为地图。在地图中,我无法通过 intellij 调试器读取一些值。如果我手动输入 map.get("key") 则值为空。但是,如果我从地图上复制粘贴密钥,我就会获取数据。无法理解出了什么问题。任何指针都会有所帮助。谢谢

这是我的 CSV 解析器代码:

 private CSVParser parseCSV(InputStream inputStream) {
        System.out.println("What is the encoding "+ new InputStreamReader(inputStream).getEncoding());
        try {
            return new CSVParser(new InputStreamReader(inputStream), CSVFormat.DEFAULT
                    .withFirstRecordAsHeader()
                    .withIgnoreHeaderCase()
                    .withSkipHeaderRecord()
                    .withTrim());
        } catch (IOException e) {
            throw new IPRSException(e);
        }
    }

字符串中有一个奇怪的字符(参考:Reading UTF-8 - BOM marker)。以下语法有助于解决问题

header = header("\uFEFF", "");

在java中使用UnicodeReader:

String path = "demo.csv";
CSVFormat.Builder builder = CSVFormat.RFC4180.builder();
CSVFormat format = builder.setQuote(null).setHeader().build();

InputStream in = new FileInputStream(new File(path));
CSVParser parser = new CSVParser(new BufferedReader(new UnicodeReader(in)), format);