后端接口获取到csv格式内容并导出,拒绝乱码

后端接口获取到csv格式内容并导出,拒绝乱码

忽然有一天,用了好久的代码说是导出乱码了,好吧,改一改

javascript 复制代码
exportCsv(csvStr) {
    try {
        // 1. 处理CSV字符串(解决中文乱码:添加UTF-8 BOM头)
        const bom = '\ufeff' // UTF-8 BOM头,确保Excel打开时中文不乱码
        const csvContent = bom + csvStr

        // 2. 创建Blob对象(指定MIME类型为text/csv,编码UTF-8)
        const blob = new Blob([csvContent], {
            type: 'text/csv;charset=utf-8;'
        })

        // 3. 创建临时下载链接
        const url = URL.createObjectURL(blob)
        const a = document.createElement('a') // 隐藏的<a>标签
        a.href = url
        a.download = '观看记录.csv' // 设置下载文件名(支持中文,浏览器会自动编码)

        // 4. 模拟点击下载(解决部分浏览器不触发点击的问题)
        document.body.appendChild(a)
        a.click() // 触发下载

        // 5. 清理资源(避免内存泄漏)
        setTimeout(() => {
            document.body.removeChild(a) // 移除临时标签
            URL.revokeObjectURL(url) // 释放Blob URL
        }, 100)

    } catch (error) {
        this.$message.error('导出失败,请重试!')
    }
}
相关推荐
小奶包他干奶奶21 分钟前
Webpack学习——Loader(文件转换器)
前端·学习·webpack
zy happy1 小时前
若依 vue3 报错:找不到模块“@/api/xxxx/xxxxx”或其相应的类型声明。。Vue 3 can not find mod
前端·javascript·vue.js
潘小安1 小时前
Git Worktree + Claude Code:让你的开发效率翻倍的秘密武器
前端
meichaoWen1 小时前
【Vue3】vue3的全面学习(一)
前端·javascript·学习
小猪努力学前端2 小时前
在 React + React Router v7 SSR 项目里做多端适配,我踩的两个坑
前端·react.js
q***d1732 小时前
React桌面应用开发
前端·react.js·前端框架
8***29312 小时前
解决 Tomcat 跨域问题 - Tomcat 配置静态文件和 Java Web 服务(Spring MVC Springboot)同时允许跨域
java·前端·spring
0***142 小时前
React计算机视觉应用
前端·react.js·计算机视觉
Q***K552 小时前
React高级
前端·react.js·前端框架
c***97982 小时前
React语音识别案例
前端·react.js·语音识别