You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows环境下pg_dump导出文件包含多余非打印字符如何处理?

pg_dump导出文件含非打印控制字符问题说明

你遇到的非打印控制字符不属于导出异常,是你指定的导出格式的固有属性:--format custom参数对应PostgreSQL专属的二进制归档格式,本身就不是纯文本类型,内置的元数据、压缩标识、结构标记会显示为AN^@这类不可打印字符,针对纯文本设计的dos2unix、格式转换类工具自然无法消除这类二进制内容。

针对你的需求,有两类解决方案:

  • 如果你需要可直接用文本编辑器打开的纯文本SQL导出文件,无需添加--format custom参数(pg_dump默认导出格式就是纯文本SQL),调整后的命令如下:
pg_dump -h 127.0.0.1 -U postgres -W --file my_db_dump.sql my_db
  • 如果你确实需要使用custom归档格式(用于支持并行恢复、单对象恢复等高级恢复功能),无需做任何格式转换,该文件可以正常通过pg_restore命令完成数据恢复,恢复命令示例:
pg_restore -h 127.0.0.1 -U postgres -W -d target_db my_db_dump.sql

注意:custom格式的二进制归档文件不要用文本编辑器强行修改,避免破坏结构导致恢复失败

pg_dump没有对应参数可以消除custom格式下的控制字符,这类字符本身是该格式的正常组成部分,不属于问题。

内容的提问来源于stack exchange,提问作者Chris F

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 01:36:03