Postgresql: define a codificação padrão do cliente psql

11

Quando eu me conecto a um banco de dados Postgresql usando psql, geralmente recebo estas mensagens:

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

Após esta resposta do SO , entendo que devo alterar a codificação do cliente de acordo:

SET client_encoding = 'UTF8';

Alterar a client_encodingcada vez que eu me conecto ao banco de dados é complicado. Existe uma maneira de definir permanentemente essa configuração, no .pgpassarquivo ou em qualquer outro lugar?

Adam Matan
fonte

Respostas:

13

Existe uma maneira de definir permanentemente essa configuração, no arquivo .pgpass ou em qualquer outro lugar

Sim, existe: é ~/.psqlrc(ou %APPDATA%\postgresql\psqlrc.confno Windows)

Consulte o manual para obter detalhes: http://www.postgresql.org/docs/current/static/app-psql.html#AEN88713

um cavalo sem nome
fonte
2
Adicionando SET client_encoding = 'UTF8';ao ~/.psqlrcfez o truque. Obrigado!
Adam Matan
Isso não parece funcionar ao (re) conectar-se a partir de uma psqlsessão, por exemplo, após reiniciar o servidor.
precisa saber é o seguinte
11
Eu tive que criar esse arquivo no Windows e definir uma var do ambiente de usuário chamada PSQLRC apontando para esse diretório. Não há mais queixas, yay
Amalgovinus