将 JSON 导出为 CSV:关于 CSV 和 Unicode 的说明
来源:dev.to
时间:2024-07-26 20:15:47 482浏览 收藏
来到golang学习网的大家,相信都是编程学习爱好者,希望在这里学习文章相关编程知识。下面本篇文章就来带大家聊聊《将 JSON 导出为 CSV:关于 CSV 和 Unicode 的说明》,介绍一下,希望对大家的知识积累有所帮助,助力实战开发!
有多个JS库允许导出到excel。但是,如果我们想遵循极简主义方法来避免额外的依赖,该怎么办?
最简单的方法是从 JSON 生成 CSV,可以轻松在 Excel 中打开。
但是在展示转换逻辑之前,让我们先了解一下 CSV 是什么以及创建 CSV 文件时我们将使用哪种编码。
CSV 格式
此 RFC 4180 逗号分隔值 (CSV) 文件的通用格式和 MIME 类型指定了 CSV 格式的定义。请注意,这只是一个备忘录,因为 CSV 格式尚未正式标准化。
主要定义
- 每条记录位于单独的行上,由换行符 (CRLF) 分隔。
- 文件中的最后一条记录可能有也可能没有结束换行符。
- 标头应在整个文件中包含相同数量的字段。
- 每个字段可以用双引号括起来,也可以不用双引号括起来。
- 包含换行符(CRLF)、双引号和逗号的字段应该用双引号括起来。
- 如果使用双引号括住字段,则字段内出现的双引号必须通过在其前面加上另一个双引号来转义。
编码
在我的 JSON 数据中,我有来自 ISO Latin-1 (ISO/IEC 8859-1) 字符集的字符 æ å ø,在创建 csv 文件时必须考虑这些字符。
需要考虑的 Unicode® 标准版本 15.0 的一些摘录。
Unicode 与 UTF-8/16/32
来自 Unicode® 标准版本 15.0:
- Unicode 是书面字符和文本的通用字符编码标准,包含世界文字中的 149,186 个字符。
- Unicode 字符以三种编码形式之一表示:32 位形式 (UTF-32)、16 位形式 (UTF-16) 和 8 位形式 (UTF-8)。
- Unicode 联盟完全认可使用三种 Unicode 编码形式中的任何一种作为实现 Unicode 标准的一致方式。例如,重要的是不要陷入试图区分“UTF-8 与 Unicode”的陷阱。 UTF-8、UTF-16 和 UTF-32 都是实现 Unicode 标准编码字符的同等有效且一致的方式。
字节顺序标记 (BOM)
- 用于字节顺序标记的字符 U+FEFF (UTF-8 EF BB BF) 被命名为零宽度不间断空格。
- Unicode 纯文本的 UTF-16 和 UTF-32 编码形式对将数据写入文件时使用的字节顺序敏感。
- 识别a开头的字节序列 数据流可以视为数据流正在使用 UTF-8 编码方案的近乎确定的指示。
简而言之,在 CSV 字符串之前添加零宽度不间断空格将强制 Excel 应用 UTF-8 编码而不是 1252:西欧 (Windows) 或 Excel 将选择的其他编码,以防 U+FEFF 字符不是提供.
我将在本系列的下一篇文章中展示使用零宽度不间断空格生成 CSV 文件和不使用零宽度不间断空格的 CSV 文件之间的区别...
今天带大家了解了的相关知识,希望对你有所帮助;关于文章的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
253 收藏
-
262 收藏
-
346 收藏
-
177 收藏
-
460 收藏
-
263 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 542次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 507次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 497次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 484次学习