Boa tarde.
Busquei em vários sites uma forma de setar o client_encoding do Postgres porém não consegui resposta alguma. A minha situação é a seguinte: Tenho um banco de dados que está usando a codificação [b]latin1[/b] porém, ao buscar uma conexão do pool e executar o comando [b]select pg_client_encoding()[/b] o banco me retorna [b]UTF8[/b].
Tentei setar a variável de ambiente [b]PGCLIENTENCODING=latin1[/b] usando em paralelo o parâmetro [b]allowEncodingChanges=true[/b] porém não funcionou. Também tentei passar um parâmetro para a conexão usando o código abaixo mas não funcionou.
<local-tx-datasource>
<jndi-name>NomeDataSource</jndi-name>
<connection-url>jdbc:postgresql://192.168.0.1:5432/nomeBanco?allowEncodingChanges=true</connection-url>
<connection-property name="client_encoding">LATIN1</connection-property>
<driver-class>org.postgresql.Driver</driver-class>
<user-name>postgres</user-name>
<password>******</password>
<min-pool-size>5</min-pool-size>
<max-pool-size>5</max-pool-size>
<metadata>
<type-mapping>PostgreSQL</type-mapping>
</metadata>
</local-tx-datasource>
Se eu utilizasse uma conexão direta com o banco via JDBC, bastaria que eu executasse uma vez a sentença SQL [b]SET client_encoding to latin1[/b] e meu problema seria resolvido. Porém, nesse caso, eu não vejo uma forma de resolver o problema.
Qualquer ajuda será muito bem vinda.
Abraço a todos.