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
SETcomando ao abrir a conexão em seu aplicativo:SET client_encoding = 'UTF-8'; - Usando
set_configfunção ao abrir a conexão em seu aplicativo:SELECT set_config('client_encoding', 'UTF-8', true); - Configurar
PGCLIENTENCODINGambiente var em seu SO:export PGCLIENTENCODING=UTF8 - Editar
client_encodingno arquivo de configuração do postgres - Usar
ALTER SYSTEM(você deve atualizar a configuração depois disso comSELECT 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 .