Problemas com encoding [usando DWR]

Estou mexendo numa aplicação feita usando o e-gen.
O cógido é todo em struts, usando hibernate e postgresql com encoding latin1.

Resolvi começar a usar ajax em algumas páginas da minha aplicação e, para isso, optei pelo DWR.
O problema é que agora, exclusivamente nas páginas onde estou usando o ajax, estou tendo problemas com encoding.

Como funciona nas páginas SEM ajax:
Eu insiro caracteres diferentes, como o travessão (), e eles são inseridos normalmente no banco. A única coisa estranha é que quando visualizo os dados usando o PGAdmin o caractere é exibido de forma estranha(), mas aparece certinho quando faço uma consulta e exibo em alguma página da aplicação. Na action que efetua a inserção o resultado de request.getCharacterEncoding() é NULL.

Como está nas páginas COM ajax:
Se tento inserir caracteres especiais recebo uma exceção do banco reclamando que o caractere não é compatível com o encoding latin1 e nada é inserido. Na action que efetua a inserção o resultado de request.getCharacterEncoding() é UTF-8.
A única solução quebra-galho que consegui até agora foi tentar uma conversão usando String.getBytes(“ISO-8859-1”), que troca os caracteres especiais por ‘?’. Perco dados, mas pelo menos consigo inserir o restante no banco.

Aparentemente, quando não seto encoding nenhum E não uso DWR, o browser trata de alguma forma os caracteres especiais e manda num formato que a a aplicação consegue entender. Entretando quando uso o DWR, ele parece forçar o uso de UTF-8, tratando do seu próprio jeito os caracteres especiais, de modo que a aplicação não consegue entendê-los.

Alguém tem alguma idéia de como resolver isso?
Já tentei usar readers/writers para converter de um formato para outro, mas não consegui nenhum resultado que preservasse os dados.
Tentei também setar o encoding como iso8859-1 nas páginas da aplicação, mas mesmo assim nas actions que inseriam os dados dos forms que usaram DWR o encoding continuava UTF-8

PS:Já havia criado outro tópico sobre o assunto, mas como agora tenho condições de explicar melhor o que está acontecendo optei por criar um novo.

vc ja viu o encoding do Banco de Dados??
pode ser isso vc ta utilizando UTF-8 e o banco outro tipo!!
vlw
abs

[quote=UMC]vc ja viu o encoding do Banco de Dados??
pode ser isso vc ta utilizando UTF-8 e o banco outro tipo!!
vlw
abs[/quote]
Obrigado, UMC, havia esquecido de colocar essa informação no primeiro post, vou editar.
De fato o encoding do banco de dados não está em UTF-8, e sim em latin1.
O que me incomoda é o fato de mesmo assim conseguir armazenar o caractere que eu citei (que, pelas tabelas de caracteres que achei na net, não está no conjunto de caracteres do latin1) quando não tenho o DWR forçando o uso de UTF-8.
Como última solução considero a troca do encoding do banco (pesquisando antes o impacto disso nos dados), mas antes gostaria de verificar a possibilidade de fazer o DWR não forçar UTF-8.

Complicado!!
nunca trabalhei com DWR “pretendo dar olhada”!
vou dar uma pesquisada se achar algo posto aki!
vlw
abs

[quote=UMC]Complicado!!
nunca trabalhei com DWR “pretendo dar olhada”!
vou dar uma pesquisada se achar algo posto aki!
vlw
abs[/quote]
Hehe, complicado mesmo. Não achei em lugar nenhum alguém que já tenha passado por esse mesmo problema.
Obrigado pela disposição em ajudar, UMC.
abs

De nada ! tem certos assuntos que o pessoal nunca viu !rsrs
vai testando varias maneiras ae ate consegir!!
vlw
abs

Povo, só pra postar a solução que encontrei:
Mudar o banco para UTF-8.

Não achei nada específico sobre problemas de codificação e DWR, só a informação de que eles usar “URL encoding” para tratar as strings.
A única opção decente que encontrei é usar UTF-8, mas ainda estou encucado com o fato de, sem DWR, ter sido possível guardar esses caracteres não iso-8859-1 num banco com encoding iso-8859-1. Mesmo resolvendo o problema pretendo continuar pesquisando pra saber o porque de isso ter funcionado.