Oudere versies van PostgreSQL waren niet zo streng op de naleving van UTF-8 dan nieuwere versies. Vermoedelijk probeert u gegevens met ongeldige UTF-8 van zo'n oudere versie te herstellen naar een nieuwere versie.
De ongeldige strings moeten worden opgeschoond. U kunt die procedure volgen voor elke tabel die vanwege deze fouten niet is geïmporteerd:
-
Pak de inhoud van de tabel uit het dumpbestand in een SQL-bestand met platte tekst:
pg_restore --table=tablename --data-only dumpfile >plaintext.sql
-
Verwijder de ongeldige tekens in een teksteditor of automatisch met
iconv
:iconv -c -f UTF-8 -t UTF-8 <plaintext.sql >plaintext-cleaned.sql
-
Importeer de opgeschoonde gegevens:
psql dbname < plaintext-cleaned.sql