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
SETcomando cuando abra la conexión en su aplicación:SET client_encoding = 'UTF-8'; - Usando
set_configfunción cuando se abre la conexión en su aplicación:SELECT set_config('client_encoding', 'UTF-8', true); - Configurar
PGCLIENTENCODINGvariable de entorno en su sistema operativo:export PGCLIENTENCODING=UTF8 - Editar
client_encodingen el archivo de configuración de postgres - Usar
ALTER SYSTEM(debe actualizar la configuración después de eso conSELECT 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 .