Erro de caracteres especiais em Linux X Windows

Tenho o seguinte problema: algumas aplicações Java ou são compiladas no Windows e executadas no Linux ou são compiladas no Linux e executadas no Windows, e as mensagens e demais texto com caracteres especiais são distorcidos em códigos.
Estou utilizando o Netbeans 6.5 e a configuração dele é para UTF-8 tanto no Windows como no Linux.
Como Java é multiplataforma existe algum jeito de coibir isso? Fazer aplicações trabalharem sem essa deformação nos caracteres?

Outro dia estava fazendo um projeto em swing e tive o mesmo problema…fui procurar na Net, não obtive resposta!

Acredito que a maquina virtua utilize componentes do Sistema Operacional para mostrar os caracteres e palavras. Como o software desenvolvido foi compilado em plataformas diferentes, vai dar bug mesmo… Está fora de nosso alcance, deve ser problema da maquina virtual e do Sistema Operacional.
Se o software for usar em linux compile no linux e o que for usar no windows compile no windows…acho a melhor maneira…ao não ser que alguém conheça uma API por aí que trate problemas desse natureza, eu não conheço!!! Se alguém conhecer, poste aí a API, porque também passo pelo mesmo problema de vez enquando!!!

Abraços

O código-fonte fica distorcido, os campos texto da aplicação em Java ficam distorcidos, ou os dados que vão e voltam do banco de dados/persistência ficam distorcidos?

Isso costuma acontecer no mysql quando os campos não estão com o charset definidos de acordo a localização, para exibir caracteres com acentos o correto é ISO-8859-1. Se for arquivo em disco, fique atento quanto ao charset que o editor vai usar para gravar, pois mesmo se definir no cabeçalho do arquivo, na hora de gravar ele vai converter os caracteres. Esse negócio é um saco mesmo.

Os caracteres contidos no código-fonte (comentários) e os caracteres especiais na tela (utilizei Swing).
Ambos os projetos (tanto no Windows como no Linux) estão em UTF-8 no Netbeans.

[quote=rsantik]Outro dia estava fazendo um projeto em swing e tive o mesmo problema…fui procurar na Net, não obtive resposta!

Acredito que a maquina virtua utilize componentes do Sistema Operacional para mostrar os caracteres e palavras. Como o software desenvolvido foi compilado em plataformas diferentes, vai dar bug mesmo… Está fora de nosso alcance, deve ser problema da maquina virtual e do Sistema Operacional.
Se o software for usar em linux compile no linux e o que for usar no windows compile no windows…acho a melhor maneira…ao não ser que alguém conheça uma API por aí que trate problemas desse natureza, eu não conheço!!! Se alguém conhecer, poste aí a API, porque também passo pelo mesmo problema de vez enquando!!!

Abraços
[/quote]

De certa forma até compreendo isso como uma possível limitação da JVM imposta por divergências dos sistemas operacionais, mas se for realmente isso onde fica uma das maiores vantagens do Java que é a interoperabilidade entre plataformas sem precisar recompilar a aplicação?

Isso ocorre mesmo, não sei ao certo o porque mas sei a solução…

http://www.utf8-chartable.de/

Você vai precisar substituir os acentos por codigos unicode.

Essa tabela mostra a solução de um jeito que nao funciona…^^(Deve servir pra outra coisa). Basta alterar por exemplo ‘U+00E3’ por ‘\u00e3’. isso é o ‘ã’.
Por exemplo:

João, vai virar Jo\u00e3o.
Informação, vai virar Informa\u00e7\u00e3o

Entendeu? se não entendeu posta aê…
Espero ter ajudado…

Entendi, embora seja um pouco trabalhoso, parece ser o único jeito.
Vlw.

Já tentou mudar o charset da sua IDE para ISO-8859-1?

Meu projeto estava no Windows e quando migrei para o Linux aconteceu a mesma coisa, foi só mudar o charset default do Eclipse que resolveu.

Uma boa referência
http://www.guj.com.br/posts/list/11166.java
http://www.guj.com.br/posts/list/12456.java