后端接口获取到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('导出失败,请重试!')
    }
}
相关推荐
落霞的思绪14 分钟前
配置React和React-dom为CDN引入
前端·react.js·前端框架
Hacker_Z&Q15 分钟前
CSS 笔记2 (属性)
前端·css·笔记
Anastasiozzzz23 分钟前
LeetCode Hot100 295. 数据流的中位数 MedianFinder
java·服务器·前端
橙露1 小时前
React Hooks 深度解析:从基础使用到自定义 Hooks 的封装技巧
javascript·react.js·ecmascript
Exquisite.1 小时前
Nginx
服务器·前端·nginx
2501_920931701 小时前
React Native鸿蒙跨平台使用useState管理健康记录和过滤状态,支持多种健康数据类型(血压、体重等)并实现按类型过滤功能
javascript·react native·react.js·ecmascript·harmonyos
打小就很皮...1 小时前
dnd-kit 实现表格拖拽排序
前端·react.js·表格拖拽·dnd-kit
Ulyanov1 小时前
从静态到沉浸:打造惊艳的Web技术发展历程3D时间轴
前端·javascript·html5·gui开发
打小就很皮...1 小时前
React 19 + Vite 6 + SWC 构建优化实践
前端·react.js·vite·swc
Highcharts.js1 小时前
使用Highcharts与React集成 官网文档使用说明
前端·react.js·前端框架·react·highcharts·官方文档