Re: Importing a Windows database (in en_GB.CP1252) to linux
| От | Jean-Christophe BOGGIO |
|---|---|
| Тема | Re: Importing a Windows database (in en_GB.CP1252) to linux |
| Дата | |
| Msg-id | 74bbf2e7-0120-4b77-96a6-e5d6f4d75619@thefreecat.org обсуждение исходный текст |
| Ответ на | Re: Importing a Windows database (in en_GB.CP1252) to linux (Laurenz Albe <laurenz.albe@cybertec.at>) |
| Ответы |
Re: Importing a Windows database (in en_GB.CP1252) to linux
|
| Список | pgsql-admin |
Laurenz,
That looks like pg_restore sets a wrong client_encoding, which is weird. What do you get for pg_restore -p 5433 -t csakafl -s -f - imlocal20251127.backup | grep client_encoding
SET client_encoding = 'UTF8';
If the dump was taken from a WINDOWS-1252 encoded database, that line should read SET client_encoding = 'WIN1252'; and everything should work fine. But apparently, the client_encoding is set to UTF-8 in your case.
Yes, exactly.
How did that happen? How exactly did you take that dump?
This backup is a transfer from an iSeries DB2 database. It has been a nightmare to get this working (and took around 10 days to finalize). We set up a FDW Server using odbc_fdw, recreated all the tables (around 2k) and INSERTed the DB2 data to the PG tables.
Then we used PgAdmin that came with PostgreSQL 17 on the Windows machine.
I double-checked with the client: the database is in en_GB.CP1252.
BTW, if I try to import the same backup on a UTF8 database I get the exact same error (invalid byte sequence 0x92)
Did you do anything (like an encoding conversion) with the dump after you took it?
No, the backup is in custom format so I can't touch it (or at least I don't know how I could).
Where can I go from here?
В списке pgsql-admin по дате отправления: