Navicat导出TXT实际走CSV逻辑,定界符须在“格式设置”页手动指定为Tab并勾选引号包裹,双击打开易错列为单列,应通过Excel导入向导手动选UTF-8编码与Tab分隔符。
navicat 15 导出为 txt 时,所谓「txt」实际走的是 csv 底层逻辑,定界符必须在导出向导第二步的「格式设置」区域手动指定,不能依赖自动识别或默认值。
导出向导第二步里找不到“定界符”选项?
这是常见误操作:你可能点进了「高级选项」标签页,但定界符设置其实在「格式设置」(Format Settings)标签页下——该页默认展开,但被很多人忽略。关键点如下:
- 确保导出格式选的是
TXT或CSV,不是Excel或SQL;选错格式后,字段分隔符和文本限定符区域会消失 - 如果看到的是「分隔符」下拉菜单且只有逗号、分号、制表符等选项,说明你在正确位置;如果只有「编码」「BOM」等字段,说明你误入了「高级选项」或「输出」页
- 某些语言版本界面把
字段分隔符标为 “Field Separator”,把文本限定符标为 “Text Qualifier”,别被翻译带偏
制表符 \t 比逗号 , 更安全,但必须显式选择
用逗号作分隔符时,只要字段含逗号、换行或双引号,Navicat 就会按 RFC 4180 自动加引号并转义(如 "a,b" → "a,b"),下游程序若不兼容 CSV 解析,就会错列。而 \t 几乎不会出现在业务数据中,冲突概率极低。
- 在「字段分隔符」下拉菜单中,选
Tab(不是输入\t字符,那是无效的) - 同时务必勾选
Enclose fields in quotes(使用引号包围字段)——哪怕你选了 Tab,这一项仍影响含换行符字段的封装行为 - 如果目标是给 Python 的
pandas.read_csv(sep='\t')用,建议额外加参数quoting=csv.QUOTE_MINIMAL,和 Navicat 输出保持一致
自定义符号(如 | 或 ^)必须用「其他」并手动输入
Navicat 不允许直接在下拉菜单里选竖线 | 或脱字符 ^,得点开「其他」选项,然后在弹出的输入框里粘贴单个字符。注意以下限制:
- 只接受一个字符,输两个(如
||)会被截断为第一个 输入空格会生效,但 Excel 等工具常把首尾空格自动 trim,不推荐
- 不能输入 Unicode 符号(如 ●、→),部分版本会静默回退为逗号
- 若下游是 Shell 脚本处理,避免用
$、`、\这类需转义的字符,否则cut -d'$'会失败
导出后打开仍是单列?大概率是 Excel 自动识别错了分隔符
Navicat 按你设置的定界符生成了文件,但 Windows 双击打开时,Excel 默认用系统区域设置(如中文 Windows 用逗号)解析,根本没读你的 \t。这不是导出失败,是打开方式问题。
- 不要双击 .txt 文件 —— 启动 Excel → 数据 → 从文本/CSV → 手动选文件 → 在导入向导里指定「文件原始格式」为 UTF-8、「分隔符号」勾选 Tab
- 如果坚持双击,把文件后缀改成
.csv,并确保导出时勾选了UTF-8 with BOM编码 —— 这样 Windows Excel 才更可能自动识别为 Tab 分隔 - 用记事本或 VS Code 打开导出的文件,肉眼确认是否真有
\t(显示为空格或直接连在一起,说明导出没生效;显示为明显空隙,说明导出成功,问题在打开端)


















