PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

SQLAlchemy und Postgres UnicodeDecodeError

Es scheint, dass die Codierung von Server zu Client unterschiedlich ist. Sie können dies mit diesen Befehlen überprüfen:

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

PostgreSQL konvertiert automatisch in Client-Codierung. Wahrscheinlich sind beide in Ihrer Umgebung unterschiedlich. Sie können client_encoding konfigurieren in vielerlei Hinsicht:

  • Mit SET Befehl beim Öffnen der Verbindung in Ihrer App:SET client_encoding = 'UTF-8';
  • Mit set_config Funktion bei geöffneter Verbindung in Ihrer App:SELECT set_config('client_encoding', 'UTF-8', true);
  • Konfigurieren Sie PGCLIENTENCODING Umgebungsvariable in Ihrem Betriebssystem:export PGCLIENTENCODING=UTF8
  • Bearbeiten Sie client_encoding in der Postgres-Konfigurationsdatei
  • Verwenden Sie ALTER SYSTEM (Danach müssen Sie die Konfiguration mit SELECT pg_reload_conf(); aktualisieren ):ALTER SYSTEM SET client_encoding = 'UTF-8';

Aktualisierung: Leider ist es nicht möglich, die automatische Konvertierung von SQL_ASCII zu aktivieren.

Zitat aus Postgres-Dokumentation .