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