JDBC, Postgres e Charset

Olá Pessoal,

Estou com um problema xarope …

Tenho uma base PostgreSQL sem definição de encoding, o que faz que ela seja UNICODE, certo?

Usando o último driver JDBC deles eu faço queries e ao recuperar com result.getString(“blablabla”) tenho os caracteres acentuados zuados … então preciso recuperar com new String(result.getBytes(1),“ISO-8859-1”)) que faz eu ter os caracteres direito.

O problema é quando eu tenho que fazer um select com um parâmetro no WHERE com acentuação.

Ele simplesmente não encontra os valores acentuados (que estão no banco).

eu tentei colocar o WHERE com conversâo tambem mas ainda nao consegui fazer o danado funcionar SELECT eixoX, cat, sum(total) as total FROM (SELECT convert(tipo, 'LATIN1') FROM xxx WHERE xxxx AND Tipo IN (convert('INSTALAÇÃO','LATIN1'),convert('MANUTENÇÃO','LATIN1'),convert('OUTROS','LATIN1')) .....

Alguem sabe resolver isso?

Ah, se eu nao colocar no WHERE esse campos com acentuacao vem com todos os valores, inclusive os acentuados.

[EDITADO]Vale dizer que com o pgAdmin III tudo funfa, inclusive os acentos no WHERE (com e sem conversao)[/EDITADO]

Olá,

Já tentou abrir a conexão assim:

String urlConnection = "jdbc:postgresql://host/suabase?charSet=LATIN1";

]['s

Sorry, esqueci de avisar … estou abrindo a conexão com o charSet sendo setado.

Se fizer alguma diferença (eu acredito que não) estou usando o DBCP como pool (na verdade o pool do Tomcat que no fim das contas usa o danado).

oPA …

A solucao na lista de jdbc do postgres :

[quote]You should not use a SQL_ASCII database. The JDBC driver requires you
database to use a proper encoding for your data. The ?charSet url
parameter was designed to work around this problem for <= 7.2 servers
which didn’t come with multibyte encoding support compiled by default, but
it is ignored in => 7.3 servers so it is useless here.[/quote]

Ou seja, charSet não fede nem cheira …

Recriei o banco com LATIN1 e agora não preciso mais do getBytes nem nada de convert.

Valeus