我有一个UTF8
数据库,我想使用相同的编码qdb
将它备份到一个普通文件中。UTF8
我正在使用pg_dump
,因为我现在没有pgAdmin
工作。但是,我无法pg_dump
输出UTF8
-encoded 纯 SQL 转储文件,因为这不起作用:
C:\Program Files\PostgreSQL\12\bin> .\pg_dump.exe -U postgres -F p -O -c -C -E UTF8 qdb > d:\qdb.sql
输出转储文件被编码为UCS-2 LE BOM
尽管如此,这使得一些德语重音字母显示不正确。我正在使用 Windows 10 和 PostgreSQL 12.4。我们如何才能pg_dump
真正转储一个普通的 SQL UTF8 文件?
强制 BOM 和 UTF-16 编码重定向输出可以通过 Windows shell 以某种方式完成(我个人在 Powershell 和 Windows 10 中体验过这一点)。有关某些上下文,请参见例如解决 UTF-8、UTF-16、ASCII 不一致。
在 的情况下
pg_dump
,使用-f
选项来指定输出文件而不是 shell 重定向似乎是解决此类问题的好主意。从手册: