sql >> Databáze >  >> RDS >> PostgreSQL

SQLAlchemy a Postgres UnicodeDecodeError

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 .




  1. Dopad události query_post_execution_showplan Extended v SQL Server 2012

  2. Fluent NHibernate 3 a Oracle.DataAccess

  3. MySQL dotaz Select, SUM, LEFT JOIN

  4. Rozšíření použití DBCC CLONEDATABASE