PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

SQLAlchemy e Postgres UnicodeDecodeError


Parece que a codificação é diferente de servidor para cliente. Você pode verificar isso emitindo estes comandos:
SHOW client_encoding; --Equivalent to: SELECT current_setting('client_encoding');
SHOW server_encoding; --Equivalent to: SELECT current_setting('server_encoding');

O PostgreSQL converte automaticamente para a codificação do cliente. Provavelmente ambos são diferentes em seu ambiente. Você pode configurar client_encoding de muitas maneiras:
  • Usando SET comando ao abrir a conexão em seu aplicativo:SET client_encoding = 'UTF-8';
  • Usando set_config função ao abrir a conexão em seu aplicativo:SELECT set_config('client_encoding', 'UTF-8', true);
  • Configurar PGCLIENTENCODING ambiente var em seu SO:export PGCLIENTENCODING=UTF8
  • Editar client_encoding no arquivo de configuração do postgres
  • Usar ALTER SYSTEM (você deve atualizar a configuração depois disso com SELECT pg_reload_conf(); ):ALTER SYSTEM SET client_encoding = 'UTF-8';

Atualização: Infelizmente não é possível habilitar a conversão automática de SQL_ASCII.

Citação da documentação do Postgres .