0

我的原始数据库使用 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 do TOC 722; 1255 4594720 功能无论(字符变化)用户名 pg_restore:[arquivador (bd)] 无法执行查询:错误:sequência de bytes é inválida para codificação“UTF8”:0xe1 0x72 0x69

如果我在没有 -E 参数的情况下转储和恢复效果很好,但是我的新数据库存在字符问题

4

1 回答 1

1

好吧......我不得不像纯文本一样转储并在linux上使用这个命令删除无效字符:

iconv -c -f UTF-8 -t UTF-8 <backup.sql >backup-cleaned.sql
于 2016-05-18T15:47:06.277 回答