后端接口获取到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('导出失败,请重试!')
    }
}
相关推荐
FogLetter1 天前
React Fiber 机制:让渲染变得“有礼貌”的魔法
前端·react.js
不想说话的麋鹿1 天前
「项目前言」从配置程序员到动手造轮子:我用Vue3+NestJS复刻低代码平台的初衷
前端·程序员·全栈
JunpengHu1 天前
esri-leaflet介绍
前端
zm4351 天前
bpmn.js 自定义绘制流程图节点
前端·bpmn-js
小杨梅君1 天前
探索现代 CSS 色彩:从 HSL 到 OKLCH,打造动态色阶
前端·javascript·css
刺客_Andy1 天前
React 第五十一节 Router中useOutletContext的使用详解及注意事项
前端·javascript·react.js
宁雨桥1 天前
基于 Debian 服务器的前端项目部署完整教程
服务器·前端·debian
JunpengHu1 天前
CSS 滤镜(filter)
前端
你说啥名字好呢1 天前
【React Fiber的重要属性】
javascript·react.js·ecmascript
时雨__1 天前
uniapp转鸿蒙app内部测试发布过程——踩坑记录
前端·harmonyos