Äldre versioner av PostgreSQL var inte lika strikta vad gäller UTF-8-efterlevnad än nyare versioner. Förmodligen försöker du återställa data som innehåller ogiltiga UTF-8 från en sådan äldre version till en nyare version.
De ogiltiga strängarna måste rengöras. Du kan följa proceduren för varje tabell som inte importerades på grund av dessa fel:
-
Extrahera innehållet i tabellen från dumpfilen till en SQL-fil med vanlig text:
pg_restore --table=tablename --data-only dumpfile >plaintext.sql
-
Ta bort de ogiltiga tecknen i en textredigerare eller automatiskt med
iconv
:iconv -c -f UTF-8 -t UTF-8 <plaintext.sql >plaintext-cleaned.sql
-
Importera sanerade data:
psql dbname < plaintext-cleaned.sql