PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

SQLAlchemy e Postgres UnicodeDecodeError

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 con SELECT 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 .