Ældre versioner af PostgreSQL var ikke så strenge med hensyn til UTF-8-overholdelse end nyere versioner. Du forsøger formentlig at gendanne data, der indeholder ugyldig UTF-8 fra en sådan ældre version til en nyere version.
De ugyldige strenge skal ryddes op. Du kan følge denne procedure for hver tabel, der ikke blev importeret på grund af disse fejl:
-
Udpak indholdet af tabellen fra dumpfilen til en almindelig SQL-tekstfil:
pg_restore --table=tablename --data-only dumpfile >plaintext.sql
-
Fjern de ugyldige tegn i en teksteditor eller automatisk med
iconv
:iconv -c -f UTF-8 -t UTF-8 <plaintext.sql >plaintext-cleaned.sql
-
Importer de rensede data:
psql dbname < plaintext-cleaned.sql