我的原始数据库使用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参数的情况下转储和恢复工作正常,但我的新数据库存在问题
答案 0 :(得分:1)
嗯......我必须像普通文本一样转储,并在linux上使用此命令删除残留字符:
iconv -c -f UTF-8 -t UTF-8 <backup.sql >backup-cleaned.sql