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 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 .