postgres用于编码“UTF8”的无效字节序列

时间:2016-05-18 15:10:39

标签: postgresql utf-8 pg-dump pg-restore

我的原始数据库使用SQL_ASCII编码,我的未来数据库使用UTF8,而在另一台服务器中。

嗯......我用这个命令导出:

pg_dump -v -E UTF8 -Fc -h x.x.x.x old-database-name -U username > backup.dmp

并尝试使用此导入

pg_restore --single-transaction -v -Fc -d new-database-name -U username <  backup.dmp

但我面对这个错误:

  

pg_restore:[arquivador(bd)] Erro ao PROCESSAR TOC:pg_restore:   [arquivador(bd)] Erro no registro做TOC 722; 1255 4594720功能   随便(字符变化)用户名pg_restore:[arquivador(bd)]   无法执行查询:ERRO:sequênciadebyteséinválidapara   codificação“UTF8”:0xe1 0x72 0x69

如果我在没有-E参数的情况下转储和恢复工作正常,但我的新数据库存在问题

1 个答案:

答案 0 :(得分:1)

嗯......我必须像普通文本一样转储,并在linux上使用此命令删除残留字符:

iconv -c -f UTF-8 -t UTF-8 <backup.sql >backup-cleaned.sql