O caractere travessão causa erros na minha aplicação quando inserido dentro de qualquer campo de um form que esteja usando DWR.
Nos forms “normais” não acontece erro nenhum.
Uma solução para fazer o erro sumir é tentando converter através do método getBytes(“ISO-8859-1”).
Isso de fato acabou com o erro, mas acaba perdendo o travessão e colocando um ? no lugar.
Alguém tem alguma idéia de como contornar esse erro?
Alguém já viu algo parecido?
Quando o servidor enviar ao browser dados ele identifica o encoding que está usando. O default é latin1.
Quando o browser enviar ao servidor ele tenta enviar no mesmo encoding que recebeu. Contudo o servelt container sempre vai intrepretar como latin1 mesmo quando não é.
É por isso que é comum usar um filtro , logo no topo da cadeia que acerta o encodign. Veja request.setEncoding para detalhes.
Converter strings entre encodings é mais complicado que string. getBytes() isso nunca vai funcionar. Vc precisar readers e writers. Mas no caso especifico basta setar o encoding certo.
Se o problema dá na ida, vc precisa ter a certeza que o encoding type está corretamente setado no header da mensagem, no header do html e na diretiva do jsp. Se o problema dá na volta, apenas o filtro pode resolver.
A
almocreverson
sergiotaborda:
Quando o servidor enviar ao browser dados ele identifica o encoding que está usando. O default é latin1.
Quando o browser enviar ao servidor ele tenta enviar no mesmo encoding que recebeu. Contudo o servelt container sempre vai intrepretar como latin1 mesmo quando não é.
É por isso que é comum usar um filtro , logo no topo da cadeia que acerta o encodign. Veja request.setEncoding para detalhes.
Converter strings entre encodings é mais complicado que string. getBytes() isso nunca vai funcionar. Vc precisar readers e writers. Mas no caso especifico basta setar o encoding certo.
Se o problema dá na ida, vc precisa ter a certeza que o encoding type está corretamente setado no header da mensagem, no header do html e na diretiva do jsp. Se o problema dá na volta, apenas o filtro pode resolver.
Obrigado pela ajuda, Sergio.
Acredito que somente setar os encodings não resolva o meu problema, pois está tudo configurado para o encoding default (latin1).
Vou estudar então como funcionam readers e writers pra ver se resolvo dessa outra forma.
A
almocreverson
almocreverson:
sergiotaborda:
Quando o servidor enviar ao browser dados ele identifica o encoding que está usando. O default é latin1.
Quando o browser enviar ao servidor ele tenta enviar no mesmo encoding que recebeu. Contudo o servelt container sempre vai intrepretar como latin1 mesmo quando não é.
É por isso que é comum usar um filtro , logo no topo da cadeia que acerta o encodign. Veja request.setEncoding para detalhes.
Converter strings entre encodings é mais complicado que string. getBytes() isso nunca vai funcionar. Vc precisar readers e writers. Mas no caso especifico basta setar o encoding certo.
Se o problema dá na ida, vc precisa ter a certeza que o encoding type está corretamente setado no header da mensagem, no header do html e na diretiva do jsp. Se o problema dá na volta, apenas o filtro pode resolver.
Obrigado pela ajuda, Sergio.
Acredito que somente setar os encodings não resolva o meu problema, pois está tudo configurado para o encoding default (latin1).
Vou estudar então como funcionam readers e writers pra ver se resolvo dessa outra forma.
Aparentemente eu não consigo escolher o encoding, talvez esteja aí o problema.
Na minha página JSP, se eu mandar escrever na tela o encoding atual a resposta é ISO-8859-1. Mas dentro da action se eu fizer o mesmo a resposta é UTF-8.