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。

相关推荐
安卓开发者35 分钟前
Android WorkManager 详解:高效管理后台任务
android
henysugar2 小时前
便捷删除Android开发中XML中重复字符串资源的一个办法
android·xml
aqi003 小时前
FFmpeg开发笔记(七十八)采用Kotlin+Compose的NextPlayer播放器
android·ffmpeg·音视频·直播·流媒体
你过来啊你3 小时前
Android开发中技术选型的落地方案
android·技术选型
消失的旧时光-19434 小时前
Android Jetpack 组件库 ->Jetpack Navigation (下)
android·android jetpack
你过来啊你4 小时前
Java面向对象思想解析
android·java
愿天深海4 小时前
Flutter 提取图像主色调 ColorScheme.fromImageProvider
android·前端·flutter
Python涛哥5 小时前
go语言基础教程:【2】基础语法:基本数据类型(整形和浮点型)
android·开发语言·golang
你过来啊你5 小时前
进程线程协程深度对比分析
android·线程·进程·协程
xzkyd outpaper6 小时前
Android中ViewStub和View有什么区别?
android·开发语言·面试·代码