1

Temat: ERROR: character with byte sequence 0xc2 0x9d in encoding "UTF8" has

Witam. mam baza postgres 9.2 pod windows ustawuenia:
ENCODING = 'UTF8'
       TABLESPACE = pg_default
       LC_COLLATE = 'C'
       LC_CTYPE = 'C'
       CONNECTION LIMIT = -1;

Poszykuje sposobu by ją odtworzyć pod bazą z kodowaniem win1250.

Próbowałem wykonać eksport z kodowaniem win1250 ale zwraca mi:

pg_dump: Dumping the contents of table "buhaje" failed: PQgetResult() failed.
pg_dump: Error message from server: ERROR:  character with byte sequence 0xc2 0x88 in encoding "UTF8" has no equivalent in encoding "WIN1250"

sad

Przy odtwarzaniu jako win1250 mam:

ERROR:  character with byte sequence 0xc2 0x9d in encoding "UTF8" has no equivalent in encoding "WIN1250"


Jest jakiś na to sposób?

2

Odp: ERROR: character with byte sequence 0xc2 0x9d in encoding "UTF8" has

Też mam wersję 9.2 i u mnie działa
Wykonałem
1. backup poleceniem pg_dump --encoding=WIN1250 --username=postgres --create -W test_c >e:\dane\bea\b.sql
2. w pliku backupu zmieniłem polecenie  CREATE DATABASE na:
CREATE DATABASE test_1250 WITH TEMPLATE = template0 ENCODING = 'UTF8' LC_COLLATE = 'Polish_Poland.1250' LC_CTYPE = 'Polish_Poland.1250';
ALTER DATABASE test_1250 OWNER TO postgres;
\connect test_1250
3. Wykonałem backup za pomocą polecenia: psql --file=e:\dane\Bea\b.sql postgres postgres
I wszystko się wykonało

Ostatnio edytowany przez c_michal (2013-11-23 10:02:34)

3

Odp: ERROR: character with byte sequence 0xc2 0x9d in encoding "UTF8" has

Niestety...



c:\PostgreSQL\9.2\bin>pg_dump --encoding=WIN1250 --username=postgres --cr
eate -W test >c:\backup.sql
Password:
pg_dump: Dumping the contents of table "users" failed: PQgetResult() failed.
pg_dump: Error message from server: ERROR:  character with byte sequence 0xc2 0x
88 in encoding "UTF8" has no equivalent in encoding "WIN1250"
pg_dump: The command was: COPY ....

sad

Ostatnio edytowany przez STRATOLINER (2013-11-25 07:38:56)

4

Odp: ERROR: character with byte sequence 0xc2 0x9d in encoding "UTF8" has

nie mam pomysłu ale zobacz tak (pomijam generowania polecenia COPY za to będą INSERTY, i pg_dump będzie pokazywał szczegóły) - używaj pg_dump-a, który jest w katalogu bin tam gdzie masz zainstalowanego postgresa:

pg_dump -v --inserts --encoding=WIN1250 --username=postgres --create -W test >e:\dane\b.sql

5

Odp: ERROR: character with byte sequence 0xc2 0x9d in encoding "UTF8" has

6

Odp: ERROR: character with byte sequence 0xc2 0x9d in encoding "UTF8" has

chyba się zasugerowałem tym kodowaniem win1250, samo kodowanie w obu bazach będzie UTF8 (parametr ENCODING), a tyko ustawienia klienta będą pod WIN1250;
Zrób tak:
1. pg_dump --encoding=UTF8 --username=postgres --create -W test >c:\backup.sql
2. 2. w pliku backupu zmieniłem polecenie  CREATE DATABASE na:
CREATE DATABASE test_1250 WITH TEMPLATE = template0 ENCODING = 'UTF8' LC_COLLATE = 'Polish_Poland.1250' LC_CTYPE = 'Polish_Poland.1250';
ALTER DATABASE test_1250 OWNER TO postgres;
\connect test_1250
3.psql --file=e:\dane\Bea\b.sql postgres postgres

I mam nadzieję, że wszystko będzie OK