Java - 添加到 CSV 文件后出现难以理解的字符而不是西里尔字母

问题描述 投票:0回答:1

使用 Apache Commons CSV 库生成 CSV 数据文件。

package ru.nikita;
import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVPrinter;

import java.io.FileWriter;
import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;

public class CSVWriter {
    private final String filePath;
    private final char delimiter;

    public CSVWriter(String filePath) {
        this.filePath = filePath;
        this.delimiter = ';';
    }

    public void writeCSV(ArrayList<String> data){
        try (FileWriter writer = new FileWriter(filePath, true);
             CSVPrinter csvPrinter = new CSVPrinter(writer, CSVFormat.DEFAULT.withDelimiter(this.delimiter))
        ) {
            csvPrinter.printRecord(data);
            csvPrinter.flush();
            csvPrinter.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

我明白我需要使用utf-8编码,但我不知道如何为当前代码传递这个参数。

java encoding java-8 file-writing
1个回答
0
投票

FileWriter 使用默认字符编码

指定字符编码为UTF-8。

© www.soinside.com 2019 - 2024. All rights reserved.