Android 导出CSV文件乱码问题处理

最近有一个需求,需要在Android端导出CSV文件,自测是用的WPS,没啥问题。可到了测试那边,用Excel直接打开就是乱码,需要在Excel数据里面用【从文件/CSV】打开。这样就显示非常的不方便。

解决办法:

java 复制代码
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);
        // 写入BOM
        fos.write(0xEF); // 239
        fos.write(0xBB); // 191
        fos.write(0xBF); // 189
        OutputStreamWriter 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。

相关推荐
阿巴斯甜20 小时前
adb push .../AdapterService.apk 和 .../区别:
android
恋猫de小郭20 小时前
Flutter 的另外一种形态?社区 DartNative 要来了。
android·前端·flutter
我命由我1234520 小时前
Android Drawable - gradient
android·java·java-ee·kotlin·android studio·android-studio·android runtime
Kapaseker21 小时前
AI 时代,读源码还有用吗?从 Kotlin 集合排序说起
android·kotlin
️学习的小王1 天前
二级MySQL PHP综合应用题完整考点+历年真题风格练习题
android·mysql·php
YB13751 天前
jetpack compose 副作用 SideEffect
android·kotlin
CHB1 天前
uni-app x 蒸汽模式 性能测试基准报告 Benchmark【Android版】
android·ios·uni-app
带娃的IT创业者1 天前
拆掉那堵墙:LibrePods 如何让 AirPods 在 Android 上重获新生
android·开源项目·airpods·librepods·生态解锁
_阿南_2 天前
flutter 展示的字体突然奔放了
android·flutter·ios
文人sec2 天前
MySQL事务与索引做了什么?
android·笔记·mysql