Problema com charsets [RESOLVIDO]

Pessoal,

Tem alguém ai que usa BD MySQL e já teve problemas com charsets do BD?

Estou com um pane aqui e não consigo acertar. Assim, minha aplicação em java roda e traz os dados do BD certinho (estamos usando hibernate), porém, qdo eu chamo algum relatório (que é um .jasper desenvolvido em iReports) e que como é sabido faz a conexão via JDBC, aqueles mesmos dados que durante a aplicação são trazidos corretamente, no relatório são trazidos com problemas em todos os caracteres acentuados, onde teria um acento ou cedilha vem um quadradinho.

Eu já li bastante sobre os tais charsets, já fucei e mandei perguntas à diversos fóruns, sei que meu problema está no charset, mas nada que tenham dito até agora conseguiu resolver meu problema. Já informei no meu jasper que ele deve usar ISO-8859-1. Já verifiquei e minhas tabelas estão todas criadas como latin1. O único lugar que achei referência a algo diferente de latin1 é na imagem anexada (imagem1).

Qdo entro no MySQL Administrator vejo o que está na imagem (imagem1). O fato é que qdo instalamos o MySQL ele pede apenas um charset e respondemos latin1, de onde ele tirou as outras informações eu tb. não sei. Outra coisa estranha é que essas informações são as mesmas para qq. schema que eu tenha, não é uma configuração referente ao schema que eu estou usando (já tentei por exemplo fazer um bkp-restore mudando no script as informações sobre os charsets e nada mudou). E eu não consegui mudar essas informações até agora…

No anexo Imagem2 vcs podem ver um exemplo de informação que tem acentos rodando dentro da aplicação, e depois na Imagem3 vc pode ver a mesma informação (a mesma! inclusive da mesma tabela, exatamente a mesma) rodando dentro do relatório desenvolvido com jasper. Percebam a diferença nos caracteres acentuados.

Outra coisa importante mencionar é que na Imagem3, que é um pedaço do meu relatório, percebam que a palavra “Ocorrência” está acentuada corretamente. Esta palavra é fixa no código fonte, ou seja, apenas os dados que ele traz do BD que têm problemas na acentuação.

Por favor, estou aceitando qq ajuda!

Grata, Renata

OBS, para ver as imagens que mencionei:

Link: http://discovirtual.terra.com.br/vd.cgi?+_wi=1162387405-12975-10272553&_we=13
Senha: 4553C9D2

1-Nunca usei o MySQL Administrator, tente usar console do mysql pra fazer umas consultas e ver se os dados estão certos.
2-O Charset da connection é o utf8, já tendou converter desse charset para o ISO-8859-1 antes de fazer o relatório.
3-Veja os bugs conhecidos da sua versão do mysql para ver se tem algo referente a isso.

1 - O MySQL Administrator não serve para fazer consultas, eu uso sim o MySQL Query Browser para fazer consultas e sim, os dados estão certos, volto a afirmar que o problema só acontece nos meus relatórios .jasper em nenhum outro lugar, está tudo perfeito tanto na aplicação qto. no BD.

2 - Sim, tentei, já estou fazendo isso há tempos. A única diferença q encontrei até agora é que se eu conecto usando o ISO-8859-1 ele aparece um quadradinho no lugar dos acentos, e se eu colocar UTF-8 na conexão aparecem dois quadradinhos no lugar do acento. Mas em nenhum deles funciona.

3 - Não vi, na verdade não consegui encontrar essa seção do site. Onde fica?

Alguma outra idéia pessoal? :cry:

Olá Renata!

Estou tendo o mesmo problema e não consegui resolver ainda…
A minha aplicação web (em Perl) funciona perfeitamente! Mas quando vou gerar relatórios com iReport 1.2.7 tenho erros parecidos… Ao invés de acentos, tenho caracteres estranhos.

Olha que interessante:
No navegador (firefox) entro no phpmyadmin e vejo o registro:
Instalação
quando o certo seria Instalação.
No navegador, quando mudo para Exibir>Codificação>Unicode(UTF-8 ), aparece certo. O mesmo ocorre acessando o MySQL via terminal (putty etc). Eu mudo a codificação de exibição no cliente, nada na query e nem no banco. É opção no cliente…

Agora, o engraçado:
Usando o MySQL Query Browser, tudo certo.
Quando uso o MySQL Control Center ou o iReport 1.2.7 vem com erro!

Supus que poderia ser algo a ver com java ou JDBC…

Alguma solução?

Obrigado!!!

Mario

Oi Mário!

Então, até agora nenhuma solução!

O problema é bem parecido com o seu. Posso te adiantar que não tem nada haver com JDBC, pq no meu sistema, antes de imprimir ele mostra os itens numa lista para o usuário selecionar e nesta lista (uso swing) está aparecendo perfeitamente os acentos. Ai, qdo chamo o relatório, este msm item que o usuário selecionou aparece com o acento errado (um quadradinho no lugar do acento).

Eu desconfiava que fosse algo do jasper. Mas parece que no seu caso vc não está usando Jasper né?

E então, alguma outra idéia? Eu ainda não consegui matar essa zica… :cry:

Eu tb estou com um problema parecido de charset.
Eu estou esperancdo para alterarem as cfgs do Linux para poder testar.
Uma dica que me deram foi usar no linux $ export LANG=en_US.ISO8859-1
Isso é uma das coisas que eu vou tentar hj.
Ontem eu tentei acertar o charset do hibernate e do wrapper da minha app para usar UTF-8, mas não adiantou. Vou passar tudo pra ISO pra ver oq acontece.
O estranho que pra mim o problema só acontece na hora de transitar dados entre tabelas pelo Java. Se eu recuperar o dado e inseri-lo de novo na base ele vai estar certinho.
O meu post está aqui–> http://www.guj.com.br/posts/list/0/48814.java
Se quiserem dar uma olhada, fiquem a vontade.

Olá amigo!

Então, eu tinha visto seu problema numa das buscas que fiz sobre o assunto.

Só que no meu caso, o problema acontece no WINDOWS e no LINUX e não só no LINUX.

Alguma idéia?! :cry:

Bem,
Eu acabei de tentar configurar o Linux para o charset de ISO. No log aparece tudo ok, mas qndo vou tentar inserir caracter no banco ele fala que estou tentando inserir mais caracteres q o normal.
Uma dica q eu te dou é tentar acertar a cfg do Java na execução da aplicação ou ainda colocar em JAVA_OPTS --> -Dfile.encoding=UTF-8 ou iso-8859-1.
É uma dica!!

Como faço para fazer essa alteração?

Veja bem, meu problema SÓ OCORRE NO .JASPER. Tem certeza que isso que vc mencionou vai resolver?

Grata

Pelo menos piorar não vai!!
Bem, eu fiz algumas coisinhas
segue o feito

[code]HIBERNATE
Adição de linhas no HIBERNATE.CFG.XML
true
iso-8859-1

Acerto de variáveis de ambiente(LINUX)
LANG=en_US
SUPPORTED=en_US:en

Acerto no Wrapper. Inclusão de uma linha no config(wrapperBilling2Todos.conf)
wrapper.java.additional.2=-Dfile.encoding=iso-8859-1
[/code]

[quote=filipefumaux]

[code]HIBERNATE
Adição de linhas no HIBERNATE.CFG.XML
true
iso-8859-1

Acerto de variáveis de ambiente(LINUX)
LANG=en_US
SUPPORTED=en_US:en

Acerto no Wrapper. Inclusão de uma linha no config(wrapperBilling2Todos.conf)
wrapper.java.additional.2=-Dfile.encoding=iso-8859-1
[/code][/quote]

Não uso mais Hibernate (qdo eu usava fazia como vc mencionou e não adiantava em nada!)

Meu problema tá no windows tb e não só no linux.

Wrapper? Desculpa a ignorância, mas não sei do que se trata… :oops:
Explica melhor?

Vms lá.
Wrapper é pra uma cfg aqui.
Eu coloquei o hibernate só pra demostrar oq fiz
Acho q se vc colocar só a configuração no java para -Dfile.encoding=iso-8859-1 pode ajudar.
Uma coisa que você poderia ver é a confuguração entre o ireport que vc tá compilando o jasper. Usa a msm codificação do banco no jasper e java.
Tu tá usando qual versão do iReport?? Eu tava vendo pela net e vi q tem como fazer a cfg de jdbc pra aceitar o charset que vc queira.
Mas as coisas q eu acho q vc deveria ver era pra ver o charset do iReport na compilação e pra ver se ele aceita outro tipo.
Outra que você pode tentar mais rapido é fazer um new String() passando a codificação que vocÊ queira.
Vê se resolve.

Olá Filipe! Veja só:

Olha, eu olho no iReport e está a msma codificação que está no meu BD. Se for isso já está assim faz tempo.

iReport 1.2.2 © 2002-2006 by JasperSoft Corp.

[quote=filipefumaux]Eu tava vendo pela net e vi q tem como fazer a cfg de jdbc pra aceitar o charset que vc queira.
Mas as coisas q eu acho q vc deveria ver era pra ver o charset do iReport na compilação e pra ver se ele aceita outro tipo.
Outra que você pode tentar mais rapido é fazer um new String() passando a codificação que vocÊ queira.[/quote]

Sim, eu já sabia disso e já tentei desta forma. Não resolveu, o problema continuou o mesmo.

Sabe, tô ficando meio desesperada já! Pôxa, como pode um problema que ngn. conhece a solução? :cry:

E só acontece nos meus relatórios!!! Só neles!!! :frowning:

Caso precisem, a resposta está no tópico: http://www.guj.com.br/posts/list/48844.java#255963