sql >> Base de Datos >  >> RDS >> PostgreSQL

SQLAlchemy y Postgres UnicodeDecodeError

Parece que la codificación es diferente de servidor a cliente. Puede verificar esto emitiendo estos comandos:

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

PostgreSQL convierte automáticamente a la codificación del cliente. Probablemente ambos sean diferentes en su entorno. Puede configurar client_encoding de muchas maneras:

  • Usando SET comando cuando abra la conexión en su aplicación:SET client_encoding = 'UTF-8';
  • Usando set_config función cuando se abre la conexión en su aplicación:SELECT set_config('client_encoding', 'UTF-8', true);
  • Configurar PGCLIENTENCODING variable de entorno en su sistema operativo:export PGCLIENTENCODING=UTF8
  • Editar client_encoding en el archivo de configuración de postgres
  • Usar ALTER SYSTEM (debe actualizar la configuración después de eso con SELECT pg_reload_conf(); ):ALTER SYSTEM SET client_encoding = 'UTF-8';

Actualización: Lamentablemente, no es posible habilitar la conversión automática desde SQL_ASCII.

Cita de Documentación de Postgres .