Erro de caracteres especiais em Linux X Windows.  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
pyro
JavaGuru

Membro desde: 17/09/2007 13:13:48
Mensagens: 218
Offline

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?
rsantik
JavaTeenager
[Avatar]

Membro desde: 09/10/2008 18:50:25
Mensagens: 177
Localização: Jundiaí
Offline

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

Frases para você filosofar:

Os fins justificam os meios, diz o filosofo...
Outra gambiarra, diz o programador.

E-mail: rodrigo.santik@gmail.com
[Email] [WWW] [MSN]
Bruno Laturner
GUJ Expert
[Avatar]

Membro desde: 18/02/2008 16:17:53
Mensagens: 3002
Offline

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?

A resposta acima foi achada em menos de 5 minutos no google.
The prisoner falls in love with his chains. --E.W. Dijkstra
[WWW]
soaresinfo
JavaEvangelist
[Avatar]

Membro desde: 27/07/2003 15:40:13
Mensagens: 373
Localização: Uberlândia/MG
Offline

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.

Anuncie aqui!
pyro
JavaGuru

Membro desde: 17/09/2007 13:13:48
Mensagens: 218
Offline

Bruno Laturner wrote: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?


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.
pyro
JavaGuru

Membro desde: 17/09/2007 13:13:48
Mensagens: 218
Offline

rsantik wrote: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


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?
gqferreira
Virtual Machine Man
[Avatar]

Membro desde: 29/11/2008 17:38:10
Mensagens: 572
Localização: Indaiatuba/SP
Offline

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

This message was edited 1 time. Last update was at 20/07/2009 22:53:54


"Se eu tiver uma maçã e você também tiver uma maçã, e trocarmos de maçãs, cada um ficará com uma maçã. Se eu tiver uma ideia e você também tiver uma ideia, e trocarmos ideias, cada um ficará com duas ideias."
George Bernard Shaw

Gustavo Quirino Ferreira
[WWW] [MSN]
pyro
JavaGuru

Membro desde: 17/09/2007 13:13:48
Mensagens: 218
Offline

Entendi, embora seja um pouco trabalhoso, parece ser o único jeito.
Vlw.
Rafael Nunes
Moderador
[Avatar]

Membro desde: 09/10/2003 13:41:06
Mensagens: 2890
Localização: sao bernardo do campo
Offline

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.

------------------------------------------------------------------
"Think different? I'd be happy if most people would just think..."

http://www.yaw.com.br
http://twitter.com/rafanunes
http://twitter.com/youandwe
[Email]
fabiofalci
GUJ Master
[Avatar]

Membro desde: 11/04/2006 09:23:14
Mensagens: 1057
Localização: Porto Alegre - RS
Offline

Uma boa referência
http://www.guj.com.br/posts/list/11166.java
http://www.guj.com.br/posts/list/12456.java
[WWW] [MSN] [ICQ]
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team