前端下载文件并按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,功能还是很强大的,记录一下备忘。

相关推荐
天平6 小时前
油猴脚本创建webworker踩坑记录
前端·javascript·typescript
原则猫7 小时前
前端基础大厦
前端
陈随易8 小时前
编程语言级别的Skill市场,AI Agent 的未来形态
前端·后端·程序员
SoaringHeart9 小时前
Flutter进阶:基于 EasyRefresh 的下拉刷新封装 n_easy_refresh_mixin.dart
前端·flutter
IT_陈寒11 小时前
Vite的热更新突然不香了,排查三小时差点砸键盘
前端·人工智能·后端
子兮曰12 小时前
Agency-Agents 深度解析:400+ AI 专家的"梦之队"如何重塑开发工作流
前端·后端·vibecoding
竹林81812 小时前
用 The Graph 查询链上数据实战:从手搓 RPC 到 Subgraph,我的 NFT 项目数据加载快了 10 倍
前端·javascript
妙码生花13 小时前
从 PHP 到 AI + Golang,程序员自救转型手记(十九):点选验证码代码逐行目检
前端·后端·go
Awu122713 小时前
⚡从零开发 Agent CLI(五)实现一个可治理、可扩展的工具系统
前端·人工智能·claude
咪库咪库咪14 小时前
Vue3-生命周期
前端