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?

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


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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.