后端接口获取到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('导出失败,请重试!')
    }
}
相关推荐
羲云29 分钟前
给 Vue 页面加个 Markdown 编辑器:ME.js 的接入、图片粘贴与音视频
javascript·vue.js
zhangzeyuaaa36 分钟前
Ruby 方法参数完全指南:默认值、可变参数与关键字参数
前端·python·ruby
粥里有勺糖37 分钟前
视野修炼-技术周刊第135期 | 鼠标跟随宠物
前端·github·aigc
粥里有勺糖44 分钟前
拿 Codex 协助清理磁盘,Nice!
前端·后端·github
Highcharts.js1 小时前
可视化商用图表库对比,如何选择?
前端·javascript·学习·信息可视化·highcharts·前端可视化
TheITSea2 小时前
JavaScript Web APIs
开发语言·前端·javascript
恋猫de小郭2 小时前
Android CLI 支持 AI Agent 通过 Device Streaming 调试云真机
android·前端·flutter
Wang's Blog2 小时前
Java 项目实战: 外卖平台优化-前端dist部署与Nginx反向代理rewrite
java·前端·nginx
鬓戈2 小时前
Claude Code frontend-design 插件调研 与 Vue 旧系统风格一致性方案
前端·vue.js·人工智能
开开心心就好2 小时前
以图搜图找重复图片,本地工具离线就能用
javascript·智能手机·ffmpeg·c#·ocr·word·音视频