前端下载文件并按GBK编码解析内容

一、背景

因项目需要上传csv文件并显示曲线和表格,方案是上传文件,然后再将该文件下载下来解析,然后显示曲线和表格显示。

二、现状

上传文件没问题,后端返回文件链接后再下载,下载到文本后解析时出问题了。Windows系统编辑的csv文件,中文是GBK编码,从文件中得到文本,中文部分是乱码,原因是前端默认UTF-8编码。

三、方案

问了机器人,机器人给的第一个方案是iconv,依赖三方库,离线开发再麻烦了。

第二个方案,是以二进制方式下载到文件内容后指定编码进行处理,这个方案更合适,代码如下:

javascript 复制代码
axios.get(url,{responseType:'blob'}).then(blob => {
    // 按GBK编码解析
    const reader = new FileReader();
    reader.readAsText(blob, 'GBK');
    // 解析成功的回调
    reader.onload = () => {
        // 按换行符分割字符串
        let datas = reader.result.split(/[(\r\n)\r\n]+/);
        // 遍历数据
        datas.forEach((item, index) => {
            // 处理数据即可
        });
    };
});

四、结束

第一次使用blob和FileReader,功能还是很强大的,记录一下备忘。

相关推荐
吃手机用谁付的款9 分钟前
HTML常见标签
前端·html
好好研究17 分钟前
CSS样式中的布局、字体、响应式布局
前端·css
拉不动的猪2 小时前
前端小白之 CSS弹性布局基础使用规范案例讲解
前端·javascript·css
伍哥的传说2 小时前
React强大且灵活hooks库——ahooks入门实践之开发调试类hook(dev)详解
前端·javascript·react.js·ecmascript·hooks·react-hooks·ahooks
界面开发小八哥2 小时前
界面控件Kendo UI for Angular 2025 Q2新版亮点 - 增强跨设备的无缝体验
前端·ui·界面控件·kendo ui·angular.js
枷锁—sha3 小时前
从零掌握XML与DTD实体:原理、XXE漏洞攻防
xml·前端·网络·chrome·web安全·网络安全
F2E_Zhangmo3 小时前
基于cornerstone3D的dicom影像浏览器 第二章,初始化页面结构
前端·javascript·vue·cornerstone3d·cornerstonejs
代码的余温3 小时前
如何区别HTML和HTML5?
前端·html·html5
天下无贼!3 小时前
【样式效果】纯CSS从零到一实现动态彩色背景效果
前端·css
DoraBigHead4 小时前
手写 `new`、`call`、`apply`、`bind` + V8 函数调用机制解密
前端·javascript·面试