Postgresql: establece la codificación predeterminada del cliente psql

11

Cuando me conecto a un DB Postgresql usando psql, a menudo recibo estos mensajes:

=> SELECT * FROM question_view ;
ERROR:  character with byte sequence 0xd7 0x9e in encoding "UTF8" has no equivalent in encoding "LATIN1"

Después de esta respuesta SO , entiendo que debería cambiar la codificación del cliente en consecuencia:

SET client_encoding = 'UTF8';

Cambiar client_encodingcada vez que me conecto a la base de datos es engorroso. ¿Hay alguna manera de configurar permanentemente esta configuración, ya sea en el .pgpassarchivo o en cualquier otro lugar?

Adam Matan
fuente

Respuestas:

13

¿Hay alguna manera de configurar permanentemente esta configuración, ya sea en el archivo .pgpass o en cualquier otro lugar?

Sí lo hay: es ~/.psqlrc(o %APPDATA%\postgresql\psqlrc.confen Windows)

Consulte el manual para obtener más detalles: http://www.postgresql.org/docs/current/static/app-psql.html#AEN88713

un caballo sin nombre
fuente
2
Agregar SET client_encoding = 'UTF8';a ~/.psqlrchizo el truco. ¡Gracias!
Adam Matan
Esto no parece funcionar cuando (re) se conecta desde una psqlsesión, por ejemplo, después de reiniciar el servidor.
Adam Mackler
1
Tuve que crear este archivo en Windows y luego configurar un entorno de usuario var llamado PSQLRC apuntando a ese directorio. No más quejas, yay
Amalgovinus