По-старите версии на PostgreSQL не бяха толкова стриктни по отношение на съответствието с UTF-8, отколкото по-новите версии. Вероятно се опитвате да възстановите данни, съдържащи невалиден UTF-8, от такава по-стара версия в по-нова версия.
Невалидните низове трябва да бъдат изчистени. Можете да следвате тази процедура за всяка таблица, която не е импортирана поради тези грешки:
-
Извлечете съдържанието на таблицата от дъмп файла в SQL обикновен текстов файл:
pg_restore --table=tablename --data-only dumpfile >plaintext.sql
-
Премахнете невалидните знаци в текстов редактор или автоматично с
iconv
:iconv -c -f UTF-8 -t UTF-8 <plaintext.sql >plaintext-cleaned.sql
-
Импортирайте дезинфекцираните данни:
psql dbname < plaintext-cleaned.sql