Sembra che la codifica sia diversa da server a client. Puoi verificarlo eseguendo questi comandi:
SHOW client_encoding; --Equivalent to: SELECT current_setting('client_encoding');
SHOW server_encoding; --Equivalent to: SELECT current_setting('server_encoding');
PostgreSQL converte automaticamente in codifica client. Probabilmente entrambi sono diversi nel tuo ambiente. Puoi configurare client_encoding
in molti modi:
- Utilizzo di
SET
comando quando si apre la connessione nell'app:SET client_encoding = 'UTF-8';
- Utilizzo di
set_config
funzione quando si apre la connessione nell'app:SELECT set_config('client_encoding', 'UTF-8', true);
- Configura
PGCLIENTENCODING
ambiente var nel tuo sistema operativo:export PGCLIENTENCODING=UTF8
- Modifica
client_encoding
nel file di configurazione di Postgres - Usa
ALTER SYSTEM
(devi aggiornare la configurazione dopo di che conSELECT pg_reload_conf();
):ALTER SYSTEM SET client_encoding = 'UTF-8';
Aggiornamento: Sfortunatamente non è possibile abilitare la conversione automatica da SQL_ASCII.
Citazione da documentazione Postgres .