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í
SET
příkaz při otevření připojení ve vaší aplikaci:SET client_encoding = 'UTF-8';
- Pomocí
set_config
funkce při otevření připojení ve vaší aplikaci:SELECT set_config('client_encoding', 'UTF-8', true);
- Nakonfigurujte
PGCLIENTENCODING
var prostředí ve vašem OS:export PGCLIENTENCODING=UTF8
- Upravte
client_encoding
v 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 .