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
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
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?
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
Jayme_Vara
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
Jayme_Vara
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.