必须启用引号包裹字段并统一换行符为lf,否则含\n的字段会被误判为新行导致列错位;导出时须勾选“enclose fields in quotes”并手动设行结束符为unix(lf),验证需用notepad++或命令行,而非仅依赖excel显示。
必须启用引号包裹字段并统一换行符为 lf,否则含 \n 的字段(如地址、备注)会被 excel 或解析器误判为新行,直接导致列错位、数据偏移。
导出设置里必须勾选 “Enclose fields in quotes”
这是解决字段内换行的硬性前提。不勾选时,Navicat 不会对含 \n、, 或 " 的字段加引号,下游工具(Excel、pandas、ETL 脚本)就会把第一个 \n 当作记录分隔符处理——不是 Navicat 导错了,是解析器按 RFC 4180 规则“合法地读崩了”。
勾选后:
- Navicat 自动用双引号包裹含换行的字段,例如:
"北京市朝阳区\n建国路87号" - 字段内原有的双引号会转义为
"",符合标准,pandas 和 Excel 都能原生识别 - 别手动删引号——删了就回到错位起点
手动设行结束符为 Unix (LF),别信默认值
Navicat 默认按系统写换行符:Windows 下输出 \r\n,Linux/macOS 下输出 \n。但很多脚本(尤其是 Python + pandas 或 Linux 上的 shell 处理)只认 \n;若字段内是 \n、文件物理行又用 \r\n,就可能触发 line contains NULL byte 或卡在某一行不动。
操作路径:
使用 qbo-mileage CLI 及用户凭证,从 Airtable、Outlook 或 Google Calendar 记录生成 QuickBooks Online 里程 CSV 文件。
- 导出格式必须选
Text File(不是单独的 “CSV” 选项,它归在 Text File 类型下) - 点
Advanced Options→ 拉到底部找Line ending下拉框 - 显式选
Unix (LF),而非 “Default” 或 “Windows (CRLF)” - 如果界面没反应,先点一下
Fields separator旁的编辑按钮,有时能触发选项重绘
验证是否生效:别只看 Excel 打开效果
Excel 自带容错逻辑,有时即使换行符混用或引号缺失,它也能“勉强对齐”,但这不代表 CSV 合规。真问题会在下游脚本里爆发。
更可靠的验证方式:
- 用
Notepad++打开导出文件 → 查看底部状态栏的 “Windows (CR LF)” 或 “UNIX (LF)” 显示 - 搜索
\r\n看是否还有残留(尤其字段内容里有\r时) - 用命令行快速检查:
head -n 5 data.csv | cat -A(Linux/macOS),能看到$结尾的是 LF,^M$是 CRLF
最容易被忽略的一点:字段里同时存在 \r 和 \n(比如从 Windows 编辑器复制进数据库的文本),即使加了引号、用了 LF 结束符,某些老旧解析器仍可能行为异常——这种场景下,预处理比依赖导出设置更可控。










