<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Forum PostgreSQL - psql - polskie znaki]]></title>
		<link>https://forum.postgresql.org.pl/viewtopic.php?id=175</link>
		<description><![CDATA[Najświeższe odpowiedzi w psql - polskie znaki.]]></description>
		<lastBuildDate>Fri, 28 Sep 2012 12:47:36 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Odp: psql - polskie znaki]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=3731#p3731</link>
			<description><![CDATA[Podepnę się, chociaż mój post powinien właściwie być w dziale dla początkujących.

Baza v. 8.3 stoi na SUSE 11, psql wykonuje się na WinXP.

psql -l = UTF-8
server_encoding = UTF-8
client_encoding = WIN1250

Wykonuję polecenie:
psql.exe -f "jakiś_plik_z_poleceniami" > "plik_wynikowy"

Kodowanie pliku wynikowego jest oczywiście w win-1250.

Czy bez jakiegokolwiek grzebania w bazie i jej konfiguracji można w jakiś sposób podczas tworzenia pliku wynikowego zmienić 'w locie' stronę kodową na na utf-8 lub 8859-2?]]></description>
			<author><![CDATA[dummy@example.com (grzechu)]]></author>
			<pubDate>Fri, 28 Sep 2012 12:47:36 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=3731#p3731</guid>
		</item>
		<item>
			<title><![CDATA[Odp: psql - polskie znaki]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=2668#p2668</link>
			<description><![CDATA[Dzięki, ale nie o to chodziło. Ja mam wszystko dobrze ustawione i już sam znalazłem rozwiązanie.
Tego się nie dało przestawić i pomogło dopiero przekompilowanie psql jeszcze raz z ustawionym PG_UTF. Chodziło o linuksa i wcześniej za Chiny Ludowe nie chciał przyjąć żadnych znaków spoza SQL_ASCII. Teraz chodzi jak złoto przy tych samych ustawieniach wszystkiego.
Nie wiem po co standardowe pakiety binarne są tak idiotycznie skompilowane..]]></description>
			<author><![CDATA[dummy@example.com (atalk)]]></author>
			<pubDate>Sat, 27 Aug 2011 18:56:05 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=2668#p2668</guid>
		</item>
		<item>
			<title><![CDATA[Odp: psql - polskie znaki]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=2658#p2658</link>
			<description><![CDATA[Rozumiem, że cały czas chodzi o konsolę spod Windows, czyli cmd. Co do kodowania znaków, to zawsze w grę wchodzą trzy czynniki:

[list=*]
[*]kodowanie bazy danych (czyli właściwość [url=http://www.postgresql.org/docs/current/static/runtime-config-preset.html]server_encoding[/url])[/*]
[*]kodowanie klienta (client_encoding)[/*]
[*]strona kodowa cmd[/*]
[/list]

Jeżeli chodzi o pierwsze dwa punkty, to Postgres potrafi automatycznie konwertować je między sobą zgodnie [url=http://www.postgresql.org/docs/current/static/multibyte.html#MULTIBYTE-TRANSLATION-TABLE]tabelą 22-2[/url] w dokumentacji, czyli jeżeli dajmy na to baza jest w UTF-8, to kodowanie klienta może być bez problemu w WIN1250 i teoretycznie vice versa.

Tuż po wejściu do sesji psql może pojawić się komunikat:

[code]WARNING: Console code page (852) differs from Windows code page (1250)
         8-bit characters might not work correctly. See psql reference
         page "Notes for Windows users" for details.[/code]

Żeby sprawdzić wszystkie parametry można wykonać po psql:

[code]postgres=# SHOW server_encoding;
 server_encoding
-----------------
 UTF8
(1 row)
postgres=# SHOW client_encoding;
 client_encoding
-----------------
 UTF8
(1 row)
postgres=# \! chcp
Aktywna strona kodowa: 852[/code]

Rzecz polega na tym, żeby strona kodowa zgadzała się z kodowaniem klienta oraz na ustawieniu właściwej czcionki dla konsoli, czyli Lucida Console:

[code]postgres=# \! chcp 1250
Aktywna strona kodowa: 1250
postgres=# SET client_encoding TO 'WIN1250';
SET[/code]

Żeby ustawić permanentnie stronę kodową na 1250 (tym samym uciszając komunikat niezgodności s.k. 852 z początku sesji) i client_encoding, wystarczy dopisać je do skryptu C:\Program Files\PostgreSQL\9.0\scripts\runpsql.bat.

Dla sprawdzenia z pgAdmin:

[code]postgres=# CREATE TABLE PolskieZnaki (s text);
CREATE TABLE
postgres=# INSERT INTO PolskieZnaki VALUES ('ąćęłńóśżź');
INSERT 0 1[/code]

Oczywiście w powyższym przypadku najlepiej byłoby ustawić [b]wszystko[/b] na UTF-8 unikając konwersji WIN1250 ↔ UTF8 i z [url=http://stackoverflow.com/questions/388490/unicode-characters-in-windows-command-line-how/388500#388500]tego co wiem[/url], to od tego jest strona kodowa 65001, ale nie działa ona poprawnie wraz z psql (np. [url=http://archives.postgresql.org/pgsql-bugs/2009-02/msg00168.php]BUG #4678: codepage UTF8 crashes psql[/url]). Nawiasem pisząc jest jeszcze cmd /u, ale to z kolei ustawia kodowanie UTF-16 LE, którego Postgres nie obsłuży.

Jeżeli komuś zależy na kodowaniu ISO 8859-2 (zwane inaczej Latin-2), to można tak ustawić przez stronę kodową 28592 i także powinno działać:

[code]postgres=# \! chcp 28592
Aktywna strona kodowa: 28592
postgres=# SET client_encoding TO 'LATIN2';
SET[/code]

Mam nadzieje, że w ten sposób trochę się wyjaśniło w temacie.]]></description>
			<author><![CDATA[dummy@example.com (gszpetkowski)]]></author>
			<pubDate>Wed, 24 Aug 2011 15:15:10 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=2658#p2658</guid>
		</item>
		<item>
			<title><![CDATA[Odp: psql - polskie znaki]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=2637#p2637</link>
			<description><![CDATA[Ja mam podobny problem. Mam pod shellem ustawione polskie znaki, polskie locale itd. Uruchamiam psql i nie jestem w stanie żadnej polskiej litery wpisać. wyświetlane są dobrze jako wyniki kwerendy np., ale nie da się wprowadzić polskich znaków. 
Próbowałem różnych metod - z konsoli, łączenie się przez różne klienty ssh itd. ale to nie jest ten problem. Jak pisałem, pod shellem wszystko działa jak trzeba. Nie wiem co jest tego powodem... Może ktoś coś doradzi.]]></description>
			<author><![CDATA[dummy@example.com (atalk)]]></author>
			<pubDate>Sat, 20 Aug 2011 16:18:50 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=2637#p2637</guid>
		</item>
		<item>
			<title><![CDATA[Odp: psql - polskie znaki]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=1569#p1569</link>
			<description><![CDATA[Należy ustawić kodowanie na UTF-8 i problem 'ogonkowy' zniknie.]]></description>
			<author><![CDATA[dummy@example.com (marek)]]></author>
			<pubDate>Sun, 15 Nov 2009 16:56:19 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=1569#p1569</guid>
		</item>
		<item>
			<title><![CDATA[Odp: psql - polskie znaki]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=721#p721</link>
			<description><![CDATA[Tak , instalację mam pod windą.]]></description>
			<author><![CDATA[dummy@example.com (woziu)]]></author>
			<pubDate>Tue, 14 Apr 2009 14:30:20 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=721#p721</guid>
		</item>
		<item>
			<title><![CDATA[Odp: psql - polskie znaki]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=720#p720</link>
			<description><![CDATA[Rozumiem, że zainstalowałeś postgresa pod windą?]]></description>
			<author><![CDATA[dummy@example.com (rski)]]></author>
			<pubDate>Tue, 14 Apr 2009 12:58:20 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=720#p720</guid>
		</item>
		<item>
			<title><![CDATA[Odp: psql - polskie znaki]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=719#p719</link>
			<description><![CDATA[Z poziomu bazy mam WIN1250]]></description>
			<author><![CDATA[dummy@example.com (woziu)]]></author>
			<pubDate>Tue, 14 Apr 2009 12:41:24 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=719#p719</guid>
		</item>
		<item>
			<title><![CDATA[Odp: psql - polskie znaki]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=706#p706</link>
			<description><![CDATA[Ale 
[code]
psql -l
[/code]
nie wykonujesz z bazy tylko z poziomu systemu.
Z bazy możesz wykonać
[code]
\l
[/code]]]></description>
			<author><![CDATA[dummy@example.com (rski)]]></author>
			<pubDate>Fri, 10 Apr 2009 08:42:33 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=706#p706</guid>
		</item>
		<item>
			<title><![CDATA[Odp: psql - polskie znaki]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=704#p704</link>
			<description><![CDATA[client_encoding WIN1250 
a polecenie psql -l ; błąd składni.]]></description>
			<author><![CDATA[dummy@example.com (woziu)]]></author>
			<pubDate>Fri, 10 Apr 2009 08:33:32 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=704#p704</guid>
		</item>
		<item>
			<title><![CDATA[Odp: psql - polskie znaki]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=697#p697</link>
			<description><![CDATA[co w psql zwraca zapytanie
[code]
show client_encoding;
[/code]

Co zwraca polecenie
[code]
psql -l
[/code]]]></description>
			<author><![CDATA[dummy@example.com (rski)]]></author>
			<pubDate>Tue, 07 Apr 2009 21:47:52 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=697#p697</guid>
		</item>
		<item>
			<title><![CDATA[Odp: psql - polskie znaki]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=696#p696</link>
			<description><![CDATA[Kodowanie WIN1250]]></description>
			<author><![CDATA[dummy@example.com (woziu)]]></author>
			<pubDate>Tue, 07 Apr 2009 18:42:40 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=696#p696</guid>
		</item>
		<item>
			<title><![CDATA[Odp: psql - polskie znaki]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=695#p695</link>
			<description><![CDATA[Jakie kodowanie ustawiłeś w bazie]]></description>
			<author><![CDATA[dummy@example.com (rski)]]></author>
			<pubDate>Tue, 07 Apr 2009 18:15:49 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=695#p695</guid>
		</item>
		<item>
			<title><![CDATA[psql - polskie znaki]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=694#p694</link>
			<description><![CDATA[Wykonuje przetwarzanie ciągów znaków.
SELECT imie, wzrost, rokurodz FROM osby WHERE imie IN ('Jarosław' , 'Paweł');

Co muszę zrobić aby psql wyświetlił mi ł ?
Jak zapisać ł w psql ?:)

Bazę tworzyłem w pgAdmin.]]></description>
			<author><![CDATA[dummy@example.com (woziu)]]></author>
			<pubDate>Tue, 07 Apr 2009 17:26:05 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=694#p694</guid>
		</item>
	</channel>
</rss>
