Zdá se, že kódování se server od klienta liší. Můžete to ověřit zadáním těchto příkazů:
SHOW client_encoding; --Equivalent to: SELECT current_setting('client_encoding');
SHOW server_encoding; --Equivalent to: SELECT current_setting('server_encoding');
PostgreSQL se automaticky převádí na klientské kódování. Pravděpodobně se oba ve vašem prostředí liší. Můžete nakonfigurovat client_encoding mnoha způsoby:
- Pomocí
SETpříkaz při otevření připojení ve vaší aplikaci:SET client_encoding = 'UTF-8'; - Pomocí
set_configfunkce při otevření připojení ve vaší aplikaci:SELECT set_config('client_encoding', 'UTF-8', true); - Nakonfigurujte
PGCLIENTENCODINGvar prostředí ve vašem OS:export PGCLIENTENCODING=UTF8 - Upravte
client_encodingv konfiguračním souboru postgres - Použijte
ALTER SYSTEM(poté musíte obnovit konfiguraci pomocíSELECT pg_reload_conf();):ALTER SYSTEM SET client_encoding = 'UTF-8';
Aktualizace: Bohužel není možné povolit automatický převod z SQL_ASCII.
Citace z dokumentace Postgres .