JSON 转 CSV 后中文乱码怎么解决

只需三步就能定位并修好 JSON 转 CSV 后的中文乱码:确认导出编码为 UTF-8、给文件加 BOM、改用导入方式打开。本文还讲清 JSON 转 CSV 怎么操作、两者区别、大文件处理、接口调试场景和手机免安装方案,并附 5 条常见问题排查。

管 · · 7 分钟 · 145 浏览 · 15 个小节
目录
  1. JSON 转 CSV 后中文乱码怎么解决
  2. 为什么会出现乱码
  3. JSON 转 CSV 中文乱码怎么解决
  4. JSON 转 CSV 怎么操作
  5. JSON 和 CSV 的区别
  6. JSON 转 CSV 大文件处理
  7. 接口调试 JSON 转 CSV
  8. 手机 JSON 转 CSV 免安装
  9. 常见问题
  10. 加了 BOM 还是乱码怎么办
  11. 用记事本打开正常,Excel 打开乱码
  12. 中文变成 \u4e2d\u6587 这种形式
  13. 数组字段转出来是一串 JSON
  14. 转换后行数变多了
  15. 结尾

JSON 转 CSV 后中文乱码怎么解决

JSON 转 CSV 后中文乱码,根因通常是编码不匹配:导出时按系统默认编码写入,Excel 却按 GBK 解析 UTF-8 字节。解决办法是先确认导出编码为 UTF-8,再让 Excel 正确识别它。

最省事的做法是给 CSV 加 UTF-8 BOM(字节顺序标记),Excel 看到它就会自动按 UTF-8 打开。若你用的是浏览器本地运行的工具,通常在导出选项中就能勾选。

为什么会出现乱码

CSV 本身是纯文本,不含编码声明。它的中文能否正确显示,取决于写入端和读取端是否用同一套编码。

写入端存成 UTF-8,读取端按 GBK 解,就会出现「锟斤拷」或一串问号。反过来也会乱。

还有一种情况是数据本身没问题,只是 Excel 双击打开时猜错了编码。用记事本或代码读取就正常,这属于显示问题,不是数据损坏。

JSON 转 CSV 中文乱码怎么解决

按下面顺序排查,多数情况在前两步就能解决。

  1. 确认导出编码为 UTF-8。在导出选项里找「编码」或「Encoding」,选 UTF-8。若只能选「UTF-8 with BOM」,优先选它。
  2. 加 BOM。若导出的是无 BOM 的 UTF-8,用文本编辑器另存为「UTF-8 带 BOM」,或让工具直接导出带 BOM 的版本。
  3. 改用导入方式打开。在 Excel 里走「数据 - 从文本/CSV」,手动把编码选成 UTF-8,而不是双击文件。
  4. 检查原始 JSON 的编码。JSON 规范要求 UTF-8,但有些接口返回 GBK 编码的字节流。先确认源数据编码,再决定转换方式。
  5. 确认字段值里没有残留转义。中文被写成 \u4e2d\u6587 这类 Unicode 转义时,需要先解码再导出,否则会显示成字面量。

处理完编码后,如果 CSV 仍显示异常,把文件用十六进制查看器打开,看开头三个字节是不是 EF BB BF。是,就说明 BOM 已写入。

JSON 转 CSV 怎么操作

基本流程分三步:读取 JSON、拍平结构、写出 CSV。

JSON 允许嵌套对象和数组,CSV 只有二维表格。所以第一步是把嵌套层级展开成列名。比如 {"user":{"name":"张三"}} 会变成列名 user.name。

常见做法是:

  1. 把 JSON 数组中的每个对象视为一行。
  2. 遍历所有对象,收集出现过的全部键,作为表头。
  3. 缺失的键填空字符串,保持列对齐。
  4. 值里含逗号、引号或换行时,用双引号包裹并转义内部引号。

你可以在 /tools 里找到在浏览器本地运行的工具,数据不上传服务器。具体工具页见 JSON 转 CSV 工具。

JSON 和 CSV 的区别

理解差异能帮你判断转换会丢什么。

  • 结构:JSON 支持嵌套对象和数组,CSV 只支持扁平的二维表。
  • 类型:JSON 有字符串、数字、布尔、null 等类型,CSV 全是文本。
  • 编码:JSON 规范要求 UTF-8,CSV 没有强制规定。
  • 体积:JSON 因为带键名和括号,通常比等价 CSV 大。
  • 用途:JSON 适合接口传输,CSV 适合表格查看和批量导入。

转换的代价是嵌套信息会被拍平。数组字段一般序列化成 JSON 字符串塞进单元格,或拆成多行。

JSON 转 CSV 大文件处理

文件超过几十兆时,一次性读入内存容易卡死浏览器标签页。

更稳的策略是流式处理:逐块读取,逐行写出。这样内存占用只和单行大小相关,不随文件增长。

另外注意几点:

  • 先扫描一遍收集全部键,避免后面出现新键导致列错位。
  • 大文件导出时关闭实时预览,减少渲染开销。
  • 分批导出成多个 CSV,比一个超大文件更容易打开。
  • 若浏览器内存仍吃紧,改用命令行工具处理。

浏览器本地运行的工具在处理大文件时受标签页内存限制,这是环境决定的,不是工具缺陷。文件过大时建议换成本地脚本。

接口调试 JSON 转 CSV

调试接口时,常需要把返回的 JSON 快速转成表格核对字段。

此时的重点是保留原始结构,别急着拍平。先把响应存成 .json 文件,确认编码和完整性,再转换。

几个实用习惯:

  • 保存响应时明确用 UTF-8,避免中途被改写。
  • 先看顶层是对象还是数组。单个对象要先包成数组再转。
  • 关注分页字段,避免只转了一页数据。
  • 字段名带点号或中括号时,注意列名冲突。

转换后对照接口文档核对列名,能快速发现字段缺失或命名变更。

手机 JSON 转 CSV 免安装

在手机上处理 JSON 时,装 App 往往比用网页更麻烦。

浏览器本地运行的工具在手机端同样可用,不需要安装任何应用,也不依赖网络上传数据。打开页面、粘贴或选择文件、导出即可。

手机端的限制主要在内存和文件选择器上。超大文件不建议在手机上处理。导出后可以用表格类应用打开,若出现乱码,同样优先检查编码。

常见问题

加了 BOM 还是乱码怎么办

先确认 BOM 真的写入了,用十六进制查看器看开头是不是 EF BB BF。若已写入仍乱码,说明问题不在 BOM,而在数据源编码。回到 JSON 源头确认它是不是 UTF-8。

用记事本打开正常,Excel 打开乱码

这说明数据是好的,是 Excel 猜错了编码。改用「数据 - 从文本/CSV」导入,手动指定 UTF-8,而不是双击文件。

中文变成 \u4e2d\u6587 这种形式

这是 Unicode 转义序列,不是乱码。需要在转换前先解码,把转义还原成真实字符,再写出 CSV。

数组字段转出来是一串 JSON

这是正常的。CSV 没有数组类型,只能把数组序列化成字符串放进单元格。若需要展开,得手动拆成多行。

转换后行数变多了

多半是数组字段被展开成了多行。检查转换设置里数组的处理方式,选择「序列化为字符串」还是「展开为多行」。

结尾

中文乱码基本都能靠统一编码解决,优先用 UTF-8 加 BOM。JSON 转 CSV 后中文乱码怎么解决的答案,说到底就是让写入端和读取端用同一套编码,并让 Excel 知道该用哪套。选工具时优先选在浏览器本地运行的,数据不出本机,调试和转换都更放心。

更多文章
145 浏览 ·

相关工具

试试这些与此文章相关的实用工具

查看全部

更多在线工具等你发现

免费使用文字处理、PDF 工具、AI 写作等实用功能