故障排查

CSV 导入失败 / 乱码

UTF-8 + 一致日期格式 + 合理行数 + 干净分隔符 — 四件事保证导入成功。

症状

想把外部 CSV 拉进 Kition 数据表,结果遇到三种典型失败:(1)导入按钮点了没反应、(2)导入成功但中文显示成 阿填浴、(3)日期 / 数字字段全识别成"文本"。

所有问题都可归到三类:编码错(90% 是 UTF-8 vs GBK / Windows-1252)结构错(缺表头、分隔符不一致、引号不平衡)体量过大(一次性 > 10K 行)

检查清单

  • 文件编码必须是 UTF-8(macOS Numbers / 国内 Excel 默认是 GBK 或 Windows-1252)
  • 首行是字段名,且字段名里没有 , 也没有换行
  • 日期统一为 ISO 8601(YYYY-MM-DDYYYY-MM-DD HH:MM:SS
  • 单元格里如果有 , 必须用 "..." 包,且内部 " 要写成 ""
  • 行数控制在 10K 以下;更大文件分批导
  • 不要混用 ,; 作分隔符

逐步诊断

在 import 之前花 30 秒先看一下文件,能避免 90% 的失败:

# Detect encoding (macOS / Linux ship with 'file')
file -I data.csv
# expect: text/csv; charset=utf-8

# If charset shows iso-8859-1, gbk, or unknown — convert it:
iconv -f GBK -t UTF-8 data.csv > data.utf8.csv
# or for Windows-1252:
iconv -f WINDOWS-1252 -t UTF-8 data.csv > data.utf8.csv

# Quick row count
wc -l data.csv

# Peek at line lengths to spot delimiter issues
awk -F',' '{print NF}' data.csv | sort | uniq -c
# every line should have the same field count

修复

  • 编码错:iconv -f GBK -t UTF-8 in.csv > out.csv(看上面命令)
  • 从 Excel 导出时选 "CSV UTF-8 (Comma delimited) (.csv)",不是普通 "CSV"
  • 日期混乱:Excel 里把列格式统一为 yyyy-mm-dd 再导
  • 体量过大:用 split -l 5000 data.csv chunk_ 分块
  • 导入向导第 2 步可以手动指定每列类型 — 不要依赖自动识别

应急方案

如果导入怎么都搞不定,可以新建一张空表、手动设字段类型、然后从 CSV 复制粘贴行进表 — Kition 数据表支持从剪贴板批量粘贴(Cmd/Ctrl + V),它会按表头智能映射。

另一个救场办法:用 Pandas、jq 或任意脚本把 CSV 转成 JSON / NDJSON,Kition 有 "Import from JSON" 入口,对脏数据宽容得多。

什么时候该提 bug

  • UTF-8 + 标准 CSV + < 1000 行仍导入失败
  • 导入按钮点了没反应、日志也没新行 — UI 事件没派发
  • 日期格式严格 ISO 8601,仍被识别成文本
  • 大文件分块导入时 Kition 卡死或 OOM

相关文档

下载 Kition

本地优先的 AI 工作空间。Markdown 文档、结构化数据表、AI Agent,全部跑在你自己的电脑上。