当前位置: 首页 > news >正文

下载文件,文件名乱码问题

C# .net framework 4.8 mvc 项目,做一个文件下载功能。

原项目是前端使用razor引擎方式做页面渲染的。

该项目原来就有一个模块是可供文件下载的,且文件名是中文。

但是我现在新增的这个模块,领导要求用js写,觉得razor太笨重。

后端有一个通用的DownloadHelper帮助类。

这个帮助类里已经封装过了设置Encode和请求头等信息。

使用原模块下载时,一切正常。

使用新模块下载时,当文件名是中文时,文件名是%e4%b8这种。

经过两天的调查,原模块与新模块对比测试,才发现原来是前端的问题。

核心代码:

// 提取文件名并去除引号
var encodedFileName = matches[1].replace(/['"]/g, '');
// 对文件名进行解码
var decodedFileName = decodeURIComponent(encodedFileName);

其实我这里前端封装的方法也是有问题的,

前端使用了AJAX获取文件流并手动生成下载链接,Blob+Url.createObjectURL,反而会丢失原始响应头中的Content-Disposition。

如果直接使用<a>标签,让浏览器自动去处理,反而不会有乱码问题。

相关文章:

  • sql server 2016 版本补丁说明
  • 在unsloth框架下的基于医疗deepseek模型微调
  • 257. 二叉树的所有路径(递归+回溯)
  • 树莓派 调用摄像头
  • clickhouse集群部署保姆级教程
  • C++相关数据结构的API调用
  • qemu-kvm源码解析-内存虚拟化
  • CUDA error code 201:invalid device context
  • 《灵珠觉醒:从零到算法金仙的C++修炼》卷三·天劫试炼(32)万剑归宗破妖阵 - 最长递增子序列(LIS)
  • 有哪些好用的AI视频加工创作网站
  • SpringBoot整合JPA
  • 使用 ConfigMaps 可以优化 Spring Boot应用
  • 08 | 实现版本号打印功能
  • 线索二叉树构造及遍历算法
  • Day 14: 从上到下打印二叉树
  • Android启动速度优化
  • STM32单片机FreeRTOS系统11 系统时钟节拍和时间管理,定时器组
  • 基于小波分析法的行波测距判断故障及定位故障Matlab仿真
  • std::ranges::views::split, lazy_split, std::ranges::split_view, lazy_split_view
  • vs2022用git插件重置--删除更改(--hard)后恢复删除的内容
  • 中哥两国元首共同见证签署《中华人民共和国政府与哥伦比亚共和国政府关于共同推进丝绸之路经济带和21世纪海上丝绸之路建设的合作规划》
  • 加拿大总理宣布新内阁名单
  • 铁路部门:确保沿线群众安全,焦柳铁路6个区段将陆续安装防护栅栏
  • 专访|西蒙·斯特朗格:以“辞典”的方式讲述二战家族史
  • 听企业聊感受,《外企聊营商》5月13日起推出
  • 中美经贸高层会谈在瑞士日内瓦举行