You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React中使用FileSaver导出CSV在Excel中编码乱码问题求助

解决Excel打开UTF-8 CSV重音字符乱码问题

问题核心是Excel默认不会自动识别无BOM的UTF-8 CSV文件:VS Code等编辑器会优先用UTF-8解析,而Excel会 fallback 到系统默认编码(比如Windows平台的Windows-1252),导致带重音的字符显示异常。

直接修改代码,给CSV内容添加UTF-8 BOM头即可解决:

// 给CSV内容开头添加UTF-8 BOM标识
const csvWithBOM = '\ufeff' + csv;
const csvLegalWithBOM = '\ufeff' + csv_legal;

// 同时将Blob的MIME类型改为text/csv(更贴合CSV文件类型,推荐但非强制)
FileSaver.saveAs(
  new Blob([csvWithBOM], {type: "text/csv;charset=utf-8"}),
  `id_physique_${this.props.secuFoncierExportName}.csv`
);
FileSaver.saveAs(
  new Blob([csvLegalWithBOM], {type: "text/csv;charset=utf-8"}),
  `id_morale_${this.props.secuFoncierExportName}.csv`
);

关键说明

  • UTF-8 BOM(\ufeff)是一个特殊前缀,Excel识别到它后会明确用UTF-8编码解析文件,避免编码识别错误。
  • 把text/plain改为text/csv只是让文件类型定义更准确,不会影响编码识别,但能让系统正确关联CSV的默认打开程序。

内容的提问来源于stack exchange,提问作者maghraoui dhia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 01:37:01