最近有一个需求,需要在Android端导出CSV文件,自测是用的WPS,没啥问题。可到了测试那边,用Excel直接打开就是乱码,需要在Excel数据里面用【从文件/CSV】打开。这样就显示非常的不方便。
解决办法:
public static void exportToCsv(List<String[]> data, String filePath) throws IOException {File csvFolder = new File(FileIO.CSV_PATH);boolean isPresent = csvFolder.exists();if (!isPresent) {csvFolder.mkdir();}//FileWriter writer = new FileWriter(filePath);FileOutputStream fos = new FileOutputStream(filePath);// 写入BOMfos.write(0xEF); // 239fos.write(0xBB); // 191fos.write(0xBF); // 189OutputStreamWriter writer = new OutputStreamWriter(fos, StandardCharsets.UTF_8);for (String[] row : data) {String csvRow = String.join(",", row);writer.write(csvRow + "\n");}writer.flush();writer.close();}
解决方案:使用UTF-8 BOM。