O sistema web que estou desenvolvendo funciona sem problemas no Tomcat do Windows… quando coloco no Tomcat do Linux, reparei que ao ler um registro “canção” ele escreve “can??o”.
alguém sabe o que pode ser?
abraços!
O sistema web que estou desenvolvendo funciona sem problemas no Tomcat do Windows… quando coloco no Tomcat do Linux, reparei que ao ler um registro “canção” ele escreve “can??o”.
alguém sabe o que pode ser?
abraços!
Percebi que não é exatamente como eu falei. O problema não é ao ler o registro, e sim ao salvar.
Quando eu salvo um registro com acento, ele grava errado no banco. Porém, quando eu edito um registro do banco na mão e insiro o acento, ele é lido corretamente.
ninguém sabe o que pode ser?
O problema é que, em Windows, a codificação padrão da plataforma, seguida pela JVM é a CP-1252, semelhante à ISO-8859-1. Em resumo, 8 bits por caracter e os acetuados estão na faixa >127.
Em Linux, ao menos nas versões mais recentes, a codificação default é UTF-8. Nela, caracteres acentuados são representados por dois bytes.
O problema normalmente ocorre quando se leva fontes java de uma plataforma para outra contendo caracteres acentuados. Outra possibilidade é vc. não especificar na resposta http a codificação usada, e, no caso de um cliente windows, pode acabar sendo diferente da que o tomcat opera.
Algumas possibilidades para recolver seu problema:
Mude a codificação padrão da JVM no linux para ISO-8859-1, usando a propriedade java.io.encoding
Verifique que suas páginas JSP e HTML usem entidades HTML (á no lugar de á, p.ex).
No caso de conteúdo dinâmico, lembre-se de usar o “page encoding” no JSP e, no caso de um framework MVC qualquer, mandar o header apropriado.
Coloque tb. um tag “meta” na página, para deixar bem claro para o borwser o que vc. está mandando.
No caso do tratamento de POSTS, use o atributo “enctype” para convencer o browser a mandar a informação com o encoding.
Se você preferir, você pode setar o locale pt_BR como default no seu sistema. Também irá funcionar.
Locale.setDefault(new Locale("pt",BR));
valeu pelas dicas pessoal, brigadão!!!
Alguem conseguiu fazer isso??
[quote=psevestre]O problema é que, em Windows, a codificação padrão da plataforma, seguida pela JVM é a CP-1252, semelhante à ISO-8859-1. Em resumo, 8 bits por caracter e os acetuados estão na faixa >127.
Em Linux, ao menos nas versões mais recentes, a codificação default é UTF-8. Nela, caracteres acentuados são representados por dois bytes.
O problema normalmente ocorre quando se leva fontes java de uma plataforma para outra contendo caracteres acentuados. Outra possibilidade é vc. não especificar na resposta http a codificação usada, e, no caso de um cliente windows, pode acabar sendo diferente da que o tomcat opera.
Algumas possibilidades para recolver seu problema:
Mude a codificação padrão da JVM no linux para ISO-8859-1, usando a propriedade java.io.encoding
Verifique que suas páginas JSP e HTML usem entidades HTML (á no lugar de á, p.ex).
No caso de conteúdo dinâmico, lembre-se de usar o “page encoding” no JSP e, no caso de um framework MVC qualquer, mandar o header apropriado.
Coloque tb. um tag “meta” na página, para deixar bem claro para o borwser o que vc. está mandando.
No caso do tratamento de POSTS, use o atributo “enctype” para convencer o browser a mandar a informação com o encoding.[/quote]
Mandei um System.out.println(Locale.getDefault()); e descobri que já estou com pt_BR. No entanto, se escrevo algo como System.out.println(ááá); os acentos não são visualizados. Caso algum moderador veja esse tópico, peço que mande para outro fórum, pois agora tenho certeza que não tem nada a ver com web. :oops:
Alguém sabe o que é?