Postgre, JDBC, Pool, Tomcat e Acentuação

13 respostas
black_fire

Pessoal,
Não sei o que e to fazendo de errado, mas continuo tendo sérios problemas com acentuação, mesmo usando charSet=LATIN1, na url de conexão:
Exemplo
jdbc:postgresql://10.1.10.100:5432/desenv?charSet=LATIN1

Vejam, quando tenho um caracter acentuado ele come dois e põe um ponto de interrogação no lugar.
Exemplo:
São Paulo -> S? Paulo[neste caso a exibição está com ? no lugar do acento, mas no banco está Ok…]

E quando eu cadastro um acento, pela Web no banco, ele usa dois caracteres nada a ver com ã.
Exemplo
São Paulo -> São Paulo [neste caso a exibição está correta, no banco fica uma zona…]

PS: Quando faço o insert pelo pgAdmin, o insert está armazenando corretamente os valores:
São Paulo -> São Paulo

Já dei um System.out.println e até antes de cadastrar o valor está correto…

Se alguém por ai tiver uma dica vai ajudar bastante…

Um abraço para todos, :wink:

13 Respostas

leomc

se você estiver usando o redhat o problema está nele.

meu charset é charSet=ISO8859-1

black_fire

:arrow: Estou usando o Slackware 9.1…

maresp

Black, vc fez o q recomendei no outro tópico, criar um novo banco com a opção encoding? Vai aí um repeteco:

root:>createdb -E LATIN1 nomedobanco

no lugar de LATIN1 vc pode escolher um outro encoding como ISO8859-1 ou UNICODE.

No outro tópico dei um pequeno exemplo para backup/restore do seu banco.

black_fire

:oops: :oops: :oops: :oops: :oops: :oops: :oops: :oops: :oops:

Puts, Marcelo, valeu…
A última vez que tinha dado uma olhada no post, ainda não tinha ou eu não vi… :oops: :roll: :oops:

Valeu mesmo e desculpe a ignorância…
Realmente o simples fato de criar o db com -E LATIN1, foi o suficiente pra resolver o problema, não precisou nem incluir charSet=LATIN1 na url. Mesmo assim eu incluí só por garantia…

Um abraço a todos… :oops: :roll: :oops:

maresp

Tb sofri com isso, pq qdo tive o problema tentei fazer o ‘set encoding’ com o banco já criado e não entendia pq não funcionava. Depois lendo uma mainling list fiquei sabendo que só funcionaria criando o banco com esta opção.

kuchma

Entao, uma vez tive um problema parecido, mas era na ordenacao da pesquisa… o banco estava configurado como LATIN1 mas mesmo assim os caracteres maisculos/minusculos e acentuados/nao-acentuados nao se acertavam na ordenacao…

Uma solucao paliativa foi colocar:

ORDER BY lower(to_ascii(coluna))

dessa forma “burlando” os acentos e tal…

Vou tentar usar essa opcao de charset na conexao JDBC - quem sabe nao resolve o problema de vez? :smiley:

Marcio Kuchma

black_fire

Pessoal,

Aconteceu uma coisa muito estranha…
Etava usando o Tomcat no windows, fiz os passos acima e consegui exibir o dados com acentuação…

O problema é que passei o tomcat para o Linux, e agora o problema voltou…
:?: Alguém tem alguma idéia do que pode está acontecendo?

Um abraço… :wink:

maresp

vc tb mudou o banco ou ele continua na mesma máquina?

louds

Coloca seu editor para usar UTF-8.
Manda o javac ler teus fontes como UTF-8 (-encoding UTF-8 )
Manda teu servlet container usar esse encoding com as paginas jsps.

Fazendo isso, e dando 1 croques na cabeça dos ze ruelas que não configuravam o editor, resolvemos esse problema por aqui.

louds

Aqui vale a regra do século 21 sobre tratamento de texto:

não esqueça do seu encoding, não esqueça do seu encoding, não esqueça do seu encoding, não esqueça do seu encoding.

cv1

“louds”:
não esqueça do seu encoding, não esqueça do seu encoding, não esqueça do seu encoding, não esqueça do seu encoding.

n£Éo esque¹~a do seu encoding. :wink:

D

Estou tendo o mesmo problema da acentuação em JSPs e não são os dados vindos do banco de dados e sim simples textos escritos diretamente no HTML ou como resposta de alguma execução de um Scriptlet.

Ex: Funcionário=> Funcionário

Agradeço desde já,
Rodrigo Henrique

robson_vs

Cara estou enfrentando o mesmo problema só q no oracle 8i o problema é q a String de conexão do oracle ñ aceita este parametro.

Alguem tem alguma solução???

Valeu a atenção de todos.

Criado 2 de março de 2004
Ultima resposta 24 de jul. de 2006
Respostas 13
Participantes 8