ďťż
 
[Postgresql] dziwne kodowanie ďťż
 
[Postgresql] dziwne kodowanie
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

[Postgresql] dziwne kodowanie



Jacek Stempkowski - 28-06-2006 00:09
[Postgresql] dziwne kodowanie
  W postgresie mam bazę która ma ENCODING = 'WIN'
Ponieważ przenoszę bazę na inny serwer chciałbym przy okazji zmienić jej
kodowanie na LATIN2.
Czy ktoś wie jak można to zrobić ?
zrobiłem dumpa do pliku, zmieniłem w tym pliku na ENCODING='LATIN2' i
wgrałem na nowym serwerze, ale niestety nie mam polskich znaków (łącząc się
przez odbc)
Testowałem set client encoding w odbc, bez rezultatu.
Próbowałem przepuścić plik przez iconv ale tam nie ma kodowania WIN
Prosiłbym nieśmiało o pomoc .





Marek TROFIMIUK - 28-06-2006 00:09

  Jacek Stempkowski <jacek_stempkowski@o2.pl> wrote:
> W postgresie mam bazę która ma ENCODING = 'WIN'
> Ponieważ przenoszę bazę na inny serwer chciałbym przy okazji zmienić jej
> kodowanie na LATIN2.
> Czy ktoś wie jak można to zrobić ?
> zrobiłem dumpa do pliku, zmieniłem w tym pliku na ENCODING='LATIN2' i
> wgrałem na nowym serwerze, ale niestety nie mam polskich znaków (łącząc się
> przez odbc)
> Testowałem set client encoding w odbc, bez rezultatu.
> Próbowałem przepuścić plik przez iconv ale tam nie ma kodowania WIN
> Prosiłbym nieśmiało o pomoc .

Jeśli ENCODING = 'WIN' dotyczy WIN1250 lub WIN1251, to na pewno istnieją
(chyba nawet są instalowane standardowo) tablice konwersji w iconv.
Sprawdź sekcję NOTES w manie.

p.
--
Marek Trofimiuk < mt20863 (at) sgh waw pl >
Primary key fingerprint: FA3C 14D8 020F FA0C 70AE 930C F63F F04B 2ADD 9DD7




=?ISO-8859-2?Q?Pawe=B3_Matejski?= - 28-06-2006 00:09

  Jacek Stempkowski wrote:
> W postgresie mam bazę która ma ENCODING = 'WIN'
> Ponieważ przenoszę bazę na inny serwer chciałbym przy okazji zmienić jej
> kodowanie na LATIN2.
> Czy ktoś wie jak można to zrobić ?
> zrobiłem dumpa do pliku, zmieniłem w tym pliku na ENCODING='LATIN2' i
> wgrałem na nowym serwerze, ale niestety nie mam polskich znaków (łącząc się
> przez odbc)

W dumpie jest podane kodowanie dumpa i bez sensu jest go ruszać.
Tak na prawdę nie ma znaczenia w jakim kodowaniu jest baza. Ważne jest,
żeby ustawione kodowanie zgadzało się z rzeczywistym kodowaniem danych.

Stwórz bazę z kodowaniem jakim chcesz, wrzuć dumpa nic w nim nie
grzebiąc, czytaj dane ustawiając na począstką połączenia
SET client_encoding = 'LATIN2' lub inne jakie potrzebujsz.

I wszystko będzie działało.

--
P.M.




Jacek Stempkowski - 30-06-2006 00:08

  > W dumpie jest podane kodowanie dumpa i bez sensu jest go ruszać.
> Tak na prawdę nie ma znaczenia w jakim kodowaniu jest baza. Ważne jest,
> żeby ustawione kodowanie zgadzało się z rzeczywistym kodowaniem danych.
>
> Stwórz bazę z kodowaniem jakim chcesz, wrzuć dumpa nic w nim nie
> grzebiąc, czytaj dane ustawiając na począstką połączenia
> SET client_encoding = 'LATIN2' lub inne jakie potrzebujsz.
>
> I wszystko będzie działało.
>
> --
> P.M.

Dzięki za pomoc ale niestety nadal mam problemy.
Sytuacja wygląda następująco.
1) Plik dumpa (ze starej bazy) ma jedną z początkowych linii : CREATE
DATABASE baza_tmp WITH OWNER = wlasciciel_bazy TEMPLATE = template0 ENCODING
= 'WIN';
2) Nowy serwer : zrobiłem initdb --encoding='LATIN2'
3) Na nim założyłem bazę z kodowaniem LATIN2 :CREATE DATABASE baza_tmp WITH
OWNER = wlasciciel_bazy ENCODING = 'LATIN2' TABLESPACE = pg_default;

sprawdzam : psql -l
List of databases
Name | Owner | Encoding
-----------+----------+----------
baza_tmp | wlasciciel_bazy | LATIN2
postgres | postgres | LATIN2
template0 | postgres | LATIN2
template1 | postgres | LATIN2
(4 rows)

4) wgrywam dumpa (psql > \i /plik_dumpa.sql
5) w ODBC (windows xp) dodaje set client_encoding ='LATIN2'
I nie mam znaków ąśź pozostałe są.
Jeżeli podłącze się do bazy psql'em też brak polskich znaków śąź
Natomiast jeżeli zrobię wszystkie te kroki zamiast LATIN2 użyję WIN1250 to
wszystko wygląda ok, ale błędnie się sortuje.
Czy istniej możliwość uzyskania i polskich znaków i poprawnego sortowania ?
konwersja pliku dumpa iconv może być trudna bo plik dumpa ma 3GB i iconv go
nie otworzy.
Ktoś może ma pomysł ?





=?ISO-8859-2?Q?Pawe=B3_Matejski?= - 30-06-2006 00:08

  Jacek Stempkowski wrote:
>
> Dzięki za pomoc ale niestety nadal mam problemy.
> Sytuacja wygląda następująco.
> 1) Plik dumpa (ze starej bazy) ma jedną z początkowych linii : CREATE
> DATABASE baza_tmp WITH OWNER = wlasciciel_bazy TEMPLATE = template0 ENCODING
> = 'WIN';

Tą linie możesz wyrzucić, jeśli sam stworzyłeś bazę, albo zmienić encoding;

> 2) Nowy serwer : zrobiłem initdb --encoding='LATIN2'
> 3) Na nim założyłem bazę z kodowaniem LATIN2 :CREATE DATABASE baza_tmp WITH
> OWNER = wlasciciel_bazy ENCODING = 'LATIN2' TABLESPACE = pg_default;
>
> sprawdzam : psql -l
> List of databases
> Name | Owner | Encoding
> -----------+----------+----------
> baza_tmp | wlasciciel_bazy | LATIN2
> postgres | postgres | LATIN2
> template0 | postgres | LATIN2
> template1 | postgres | LATIN2
> (4 rows)
>
> 4) wgrywam dumpa (psql > \i /plik_dumpa.sql
> 5) w ODBC (windows xp) dodaje set client_encoding ='LATIN2'

Z tego co wiem, XP ma kodowanie WIN1250 i takie w tym kroku powinienes
ustawić.

> Natomiast jeżeli zrobię wszystkie te kroki zamiast LATIN2 użyję WIN1250 to
> wszystko wygląda ok, ale błędnie się sortuje.

Z sortowaniem to nie wiem dlaczego źle, mnie zawsze sortuje dobrze. :)
Ale też zawsze używam LATIN2 w bazie.

> Czy istniej możliwość uzyskania i polskich znaków i poprawnego sortowania ?

Moim zdaniem popełniłeś błąd w kroku 5.

--
P.M.




Zbigniew =?iso-8859-2?Q?=A3=EAcki?= - 30-06-2006 00:08

  In article <e809gl$rg6$1@nemesis.news.tpi.pl>, Jacek Stempkowski wrote:

> 4) wgrywam dumpa (psql > \i /plik_dumpa.sql
> 5) w ODBC (windows xp) dodaje set client_encoding ='LATIN2'
> Ktoś może ma pomysł ?
Jeśli łączysz się przez ODBC z windowsów, to raczej
client_encoding="WIN1250", bo nie podejrzewam, żebyś w aplikacji
windowsowej miał LATIN2.
Na razie tyle moich pomysłów. Sprawdź, i powiedz, czy działa.
dump bazy robiłeś pg_dump, czy pg_dumpall?

pozdrawiam.
zbig




Jacek Stempkowski - 30-06-2006 00:08

 
Użytkownik "Zbigniew Łęcki" <zbig_bezspamu_@mkw.spam_won.lublin.pl> napisał
w wiadomości news:slrnea7d3n.h22.zbig_bezspamu_@Zbigniew.Lecki. ..
> In article <e809gl$rg6$1@nemesis.news.tpi.pl>, Jacek Stempkowski wrote:
>
>> 4) wgrywam dumpa (psql > \i /plik_dumpa.sql
>> 5) w ODBC (windows xp) dodaje set client_encoding ='LATIN2'
>> Ktoś może ma pomysł ?
> Jeśli łączysz się przez ODBC z windowsów, to raczej
> client_encoding="WIN1250", bo nie podejrzewam, żebyś w aplikacji
> windowsowej miał LATIN2.
> Na razie tyle moich pomysłów. Sprawdź, i powiedz, czy działa.
> dump bazy robiłeś pg_dump, czy pg_dumpall?

używałem pg_dumpall. W nowej wersji postgresa jest parametr do pg_dump -E
gdzie można ustwiać kodowanie - spróbuję tędy.
W odbc ustawiałem set client_encoding='Latin2' oraz set
client_encoding='win1250' i w obydwu przypadkach nie wyświetla prawidłowo
wszystkich polskich znaków.




=?ISO-8859-2?Q?Pawe=B3_Matejski?= - 30-06-2006 00:08

  Jacek Stempkowski wrote:
> Użytkownik "Zbigniew Łęcki" <zbig_bezspamu_@mkw.spam_won.lublin.pl> napisał
> w wiadomości news:slrnea7d3n.h22.zbig_bezspamu_@Zbigniew.Lecki. ..
>> In article <e809gl$rg6$1@nemesis.news.tpi.pl>, Jacek Stempkowski wrote:
>>
>>> 4) wgrywam dumpa (psql > \i /plik_dumpa.sql
>>> 5) w ODBC (windows xp) dodaje set client_encoding ='LATIN2'
>>> Ktoś może ma pomysł ?
>> Jeśli łączysz się przez ODBC z windowsów, to raczej
>> client_encoding="WIN1250", bo nie podejrzewam, żebyś w aplikacji
>> windowsowej miał LATIN2.
>> Na razie tyle moich pomysłów. Sprawdź, i powiedz, czy działa.
>> dump bazy robiłeś pg_dump, czy pg_dumpall?
>
> używałem pg_dumpall. W nowej wersji postgresa jest parametr do pg_dump -E
> gdzie można ustwiać kodowanie - spróbuję tędy.
> W odbc ustawiałem set client_encoding='Latin2' oraz set
> client_encoding='win1250' i w obydwu przypadkach nie wyświetla prawidłowo
> wszystkich polskich znaków.

Przyjrzałem się dumpowi z 7.3 i wygląda, że on nie ustawia
client_encoding. Dopisz na poczatek dumpa:
SET client_encoding = 'WIN1250';

--
P.M.
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    [PostgreSQL] - jak =?ISO-8859-2?Q?zabezpieczy=E6_interesy_tw?==?ISO-8859-2?Q?=F3rcy_systemu_=3F=3F=3F?= postgresql - int/int postgresql Select count(*) czy raczej Select count(ID) [PostgreSQL] jak =?ISO-8859-2?Q?pobra=E6_warto=B6=E6_zwracan?==?ISO-8859-2?Q?=B1_przez_funkcj=EA=3F?= [postgresql] INSERT OR UPDATE - jak =?ISO-8859-2?Q?b=EAdzie_na?==?ISO-8859-2?Q?jlepiej=3F?= [postgresql] kilka =?ISO-8859-2?Q?rekord=F3w_subquery_jako_?==?ISO-8859-2?Q?string?= [PostgreSQL] Jak =?ISO-8859-2?Q?po=B3=B1czy=E6_funkcje_z_w?==?ISO-8859-2?Q?idokiem?= Postgres - replikcja master-master Dopasowanie do "najlepszego" dopasowania :) [ PostgreSQL] Problemy z =?ISO-8859-2?Q?instalacj=B1_PostgreSQL_na_syste?==?ISO-8859-2?Q?mach_Windows?=
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • radioaktywni.htw.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com