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

SQLAlchemy og Postgres UnicodeDecodeError

Det ser ud til, at kodningen er forskellig fra server til klient. Du kan bekræfte dette ved at udstede disse kommandoer:

SHOW client_encoding; --Equivalent to: SELECT current_setting('client_encoding');
SHOW server_encoding; --Equivalent to: SELECT current_setting('server_encoding');

PostgreSQL konverterer automatisk til klientkodning. Sandsynligvis er begge forskellige i dit miljø. Du kan konfigurere client_encoding på mange måder:

  • Ved brug af SET kommando, når du åbner forbindelse i din app:SET client_encoding = 'UTF-8';
  • Ved brug af set_config funktion, når du åbner forbindelse i din app:SELECT set_config('client_encoding', 'UTF-8', true);
  • Konfigurer PGCLIENTENCODING miljø var i dit OS:export PGCLIENTENCODING=UTF8
  • Rediger client_encoding i postgres-konfigurationsfilen
  • Brug ALTER SYSTEM (du skal opdatere config efter det med SELECT pg_reload_conf(); ):ALTER SYSTEM SET client_encoding = 'UTF-8';

Opdatering: Desværre er det ikke muligt at aktivere automatisk konvertering fra SQL_ASCII.

Citat fra Postgres-dokumentation .




  1. MySQL kommandolinje og transaktioner

  2. overføre PHP-variabelværdi til SQL IN-klausul

  3. VÆLG FOR XML AUTO og returner datatyper

  4. Php pdo indsæt forespørgsel