后端接口获取到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('导出失败,请重试!')
    }
}
相关推荐
GISer_Jing4 分钟前
AI Agent操作系统架构师:Harness Engineer解析
前端·人工智能·ai·aigc
英俊潇洒美少年12 分钟前
css中专门用来提升渲染性能、减少重排重绘的属性
前端·css
天若有情67326 分钟前
前端HTML精讲01:别再乱 div 一把抓,吃透语义化标签才是进阶第一步
前端·html
Highcharts.js27 分钟前
React 开发者的图表库生态:Highcharts React
前端·react.js·前端框架
阿部多瑞 ABU27 分钟前
文明文化悖论
前端·人工智能·ai写作
钛态1 小时前
Flutter 三方库 react 泛前端核心范式框架鸿蒙原生层生态级双向超能适配:跨时空重塑响应式单向数据流拓扑与高度精密生命周期树引擎解耦视图渲染控制中枢(适配鸿蒙 HarmonyOS ohos)
前端·flutter·react.js
全栈前端老曹1 小时前
【前端地图】地图开发基础概念——地图服务类型(矢量图、卫星图、地形图)、WGS84 / GCJ-02 / BD09 坐标系、地图 SDK 简介
前端·javascript·地图·wgs84·gcj-02·bd09·地图sdk
只与明月听1 小时前
RAG深入学习之向量数据库
前端·人工智能·python
吕不说1 小时前
AI 面试总挂?可能是表达出了问题:三层表达法 + STAR 进阶框架
前端
社恐的下水道蟑螂2 小时前
LangChain 进阶实战:从玩具 Demo 到生产级 AI 应用(JS/TS 全栈版)
前端·langchain·openai