PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

SQLAlchemy et Postgres UnicodeDecodeError

Il semble que l'encodage soit différent d'un serveur à l'autre. Vous pouvez le vérifier en émettant ces commandes :

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

PostgreSQL se convertit automatiquement en codage client. Les deux sont probablement différents dans votre environnement. Vous pouvez configurer client_encoding de plusieurs manières :

  • Utiliser SET commande lors de l'ouverture de la connexion dans votre application :SET client_encoding = 'UTF-8';
  • Utiliser set_config fonction lorsqu'une connexion est ouverte dans votre application :SELECT set_config('client_encoding', 'UTF-8', true);
  • Configurer PGCLIENTENCODING variable d'environnement dans votre système d'exploitation :export PGCLIENTENCODING=UTF8
  • Modifier client_encoding dans le fichier de configuration postgres
  • Utilisez ALTER SYSTEM (vous devez ensuite actualiser la configuration avec SELECT pg_reload_conf(); ):ALTER SYSTEM SET client_encoding = 'UTF-8';

Mise à jour : Malheureusement, il n'est pas possible d'activer la conversion automatique à partir de SQL_ASCII.

Citation de documentation Postgres .