作者:林一二
链接:https://www.zhihu.com/question/21869078/answer/350728339
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

对于 CSV 文件,Excel 需要它有一个元信息来说明它的编码,那 CSV 是纯文本文件怎么设置元信息呢?微软就定义了一个自己的格式叫 BOM 头,这个 BOM 头在被其他的表格展示器(比如 Numbers 或者 Libre Office)打开的时候会被忽略,但对 Excel 就很关键了。

我们应该在最根本的地方:产生 CSV 的地方加上它:

// 产生 CSV 的过程,body: string[][], header: string[]
const csv = body.reduce((prev, current) => `${prev}\r\n${current}`, header);
// Excel 需要 BOM 头来说明它是 UTF-8
const BOM = Buffer.from('\uFEFF');
const bomCsv = Buffer.concat([BOM, Buffer.from(csv)]);
return bomCsv.toString();
// 现在返回的字符串被下载之后,用 Excel 打开就是完全正常的中文表格了

完美解决,完全不需要用户去 notepad++、手动设置编码等等。

office excel 打开csv文件乱码问题解决相关推荐

  1. Excel 打开 CSV 文件乱码解决方法

    Excel 打开 CSV 文件乱码解决方法 - 膨胀的面包 https://blog.wangtwothree.com/code/157.html 经常接触数据的朋友,可能时不时会遇到这种情况,一份 ...

  2. excel打开csv文件乱码解决办法

    参考链接: https://jingyan.baidu.com/article/4dc408484776fbc8d846f168.html 问题:用 Excel 打开 csv 文件,确认有乱码的问题. ...

  3. Excel打开csv文件乱码问题的解决办法

    产生背景 今天在用excel打开一个脚本生成的csv文件(存储编码格式为utf-8)时出现了乱码情况,但是用WPS直接打开却正常显示.因为文件是要交给客户的,office又是普遍使用的一枚办公软件,总 ...

  4. 解决Excel打开csv文件乱码的问题

    当我们用Excel打开csv文件时,有时出现乱码的问题,如下: 出现乱码的原因: 在简体中文环境下,EXCEL打开的CSV文件默认是ANSI编码,如果CSV文件的编码方式为utf-8.Unicode等 ...

  5. EXCEL打开CSV文件乱码的解决方法

    用C#程序通过StreamWriter导出字符串,导出生成txt文本文件,用记事本打开正常,改成csv格式,用excel打开乱码,且不能正确识别分列. 后用记事本打开,把编码从utf-8改成ansi之 ...

  6. Excel打开CSV文件乱码的问题

    系统管理功能中,很多时候需要导入导出数据,基本上采用的也都是CSV文件的形式(Excel读入还是比较麻烦).由于字符集的问题,大部分都采用UTF-8编码. CSV文件的默认打开方式是Excel,但双击 ...

  7. 微软excel打开csv文件乱码,wps和txt不乱码,java后台解决

    /*** 下载CSV文件*/@RequestMapping(value = "/dlcsv/{jobLogId}", method = RequestMethod.POST)@Re ...

  8. csv文件导入后台乱码_教师使用Excel打开csv文件出现乱码怎么办-Leo老师

    在工作学习中,我们经常会遇到教师使用Excel打开csv文件出现乱码怎么办这样的问题.夏普说过:不经巨大的困难,不会有伟大的事业.因此,面对教师使用Excel打开csv文件出现乱码怎么办我们应该有努力 ...

  9. csv文件导入后台乱码_Excel打开csv文件乱码问题的解决办法

    excel打开csv 出现乱码怎么解决 CSV是逗号分隔值的英文缩写,通常都是纯文本文件.CSV格式是分隔的数据格式,有字段/列分隔的逗号字符和记录/行分隔换行符.通常CSV文件可以用EXCEL正常打 ...

  10. php导出csv文件乱码问题解决方法

    php导出csv文件乱码问题解决方法 说 这个问题之前首先来说一下什么是CSV文件?Comma Separator Value(逗号分隔值)是也.常常用来数据转换的中间文件存在,比如:从Mysql中导 ...

最新文章

  1. 计算机网页设计布局与排版研究,论计算机网页设计的布局与排版
  2. DeepMind助力Waymo!提升自动驾驶AI准确率,还能加快模型训练
  3. 每日一皮:我们最要避开的山寨产品...
  4. 6月Top 20榜单出炉啦! 万万没想到区块链大佬竟在忙这个...
  5. JDK 14的新特性:更加好用的NullPointerExceptions
  6. C#判断闰年函数及举例
  7. 豆瓣9分,颠覆世界观的好书,每读一章就感叹一次:原来如此!(免费领)
  8. 基于注解风格的Spring-MVC的拦截器
  9. CUDA、SU、MPI和Madagascar混合编程的Makefile文件配置
  10. CentOS7添加Nginx为系统服务
  11. 名字正则只能是中文英文_F开头的英文名字有哪些?英文名字典词典,根据中文名姓名发音起关联英文名,最强英文名取名攻略大全!...
  12. 视易服务器查看硬盘状态,Linux服务器使用Smartmontools检测硬盘状况 | 厘米天空
  13. 禁忌搜索算法求解TSP问题python实现
  14. 项目管理软件: 禅道、JIRA
  15. matlab中的kron函数
  16. 计算机专业术语linklist,常见的计算机专业词汇 .
  17. 远程桌面之客户端连接(MAC远程Windows桌面)
  18. Java POI 导入Excell
  19. 移动通信网络规划:双工技术
  20. DuerOS的零编程技能实现

热门文章

  1. 如何查计算机硬盘型号,win10电脑的硬盘型号如何查看
  2. matlab质心原理图,matlab:绘制质心
  3. 【M1兼容】草图大师mac 英文版 SketchUp 2021 Mac
  4. 分享一下申请CSDN博客专家成功后的好处
  5. 一堂难忘的计算机课作文,难忘的一节微机课_800字
  6. windows释放GPU内存方法
  7. AD在PCB设计中导入LOGO
  8. 关于百度导航SDK没声音的一种解决办法
  9. linux开机自动执行脚本、运行程序
  10. linux编写弹球游戏,汇编写的DOS弹球游戏