Problema acentuação [Resolvido]

9 respostas
J

Boa tarde galera, estou com um problema aqui,
desenvolvi meu projeto no netbeans, tudo indo tranquilamente, salvando no banco de dados firebird e gerando relatórios com Ireports tudo certo.

Agora fui enviar uma versao de teste do programa para um usuário, só que a acentuação sai toda errada.

No netbeans atravez do defaultCharset, descobri que quando ele está executando, utiliza o UTF-8, porém se eu compilo o programa e mando executar, ele me fala que está executando em windows-1252, como posso fazer pra corrigir isto?

Obs: Banco de dados do firebird esta como ISO8859-1 e collate como PT-BR

Obrigado desde já.

9 Respostas

pedruhenrik

é o .pdf q fica com acentuaão errada?

att,

J

não não, é o sistema completo que tá assim,
dados do banco de dados e relatórios normais sem ser em pdf

leandronsp

Jayme, é importante entender como deve ser a estrutura de enconding para uma aplicação.
Você deve definir um encoding padrão para este software ( por exemplo UTF-8 ).

Sendo assim, você cerca a fronteira de entradas do teu sistema, fazendo “entender” o encoding de origem, e mandar para todas as saídas em UTF-8 (ou como preferir).

Sobre teu problema, pelo que entendi o cliente está usando windows, então o encoding dele está assumindo que tua aplicação “serve” windows-1252 (ANSI).
Para corrigir, acho que os passos devem ser o seguinte:

  • assuma qual encoding está vindo da base em produção (vc disse que era ISO 8859-1)
  • quando for ler os dados do banco, leia no encoding de origem e “escreva” no relatório com o encoding do sistema operacional em produção (neste caso, escreva em windows-1252)
  • configure o default do netbeans como sendo o encoding que vem da base
  • e veja se o problema com acentuação foi solucionado

Isso foi que compreendi do teu problema, mas se não resolver ainda, tenha em mente que para resolver problema com encoding vc deve saber a origem e escrever da forma que achar adequado (ou como o cliente esperar que seja).
Espero ter colaborado.

J

certo entendi um pouco,
porém nao tem como eu alterar por exemplo algo na maquina virtual do cliente para alterar o encoding dele para UTF-8 ou ISO 8859-1?

leandronsp

Jayme Vara:
certo entendi um pouco,
porém nao tem como eu alterar por exemplo algo na maquina virtual do cliente para alterar o encoding dele para UTF-8 ou ISO 8859-1?

isso mesmo…e na minha opinião é o correto. O sistema do cliente deve saber o teu encoding, assim como voce deveria saber o encoding de sistemas externos que consome.
A maioria dos sistemas que fiz foi adotado UTF-8 como encoding padrão, cercando as entradas e saídas.

Creio que você alterando o encoding da jvm já resolve. Se o cliente for utilizar um editor de texto pra abrir algum relatório, este editor também deve ser aberto no encoding padrão que teu relatório foi gerado.

J

hum valeu pela atenção cara
agora consegui entender

só mais uma coisa como eu faço a alteração do encoding da jvm?

abraços

leandronsp

Se você está iniciando o jar a partir da linha de comando, deve passar o option de encoding:

-Dfile.encoding=utf-8
J

opa valeu novamente cara, muito obrigado pela ajuda
duvida resolvida

abraços

leandronsp

Opa, estamos ae…

Seria interessante editar o título do tópico e colocar um [RESOLVIDO] antes.

Abraço.

Criado 20 de junho de 2011
Ultima resposta 21 de jun. de 2011
Respostas 9
Participantes 3