System.out.println( request.getParameter(“VALOR_1”));
System.out.println( new String(request.getParameter(“VALOR_1”).getBytes(“UTF-8”), “UTF-8”));
System.out.println( new String(request.getParameter(“VALOR_1”).getBytes(“ISO-8859-1”), “ISO-8859-1”));
System.out.println( new String(“ÇÁÕ”.getBytes(), “UTF-8”) );
System.out.println( new String(“ÇÁÕ”.getBytes(), “ISO-8859-1”) );
System.out.println( new String(“ÇÁÕ”.getBytes(“UTF-8”), “UTF-8”) );
System.out.println( new String(“ÇÁÕ”.getBytes(“ISO-8859-1”), “ISO-8859-1”) );
}[/code]
Resultado: (O VALOR_1 é Ç)
Ã? //'normal' está errado
Ã? //lendo e escrevendo em UTF-8 também da erro
Ã? //lendo e escrevendo em ISO-8859-1 dá erro.. NENHUM DOS ENCODINGS DEU NO REQUEST
??? //escrevendo em UTF-8 dá erro
ÇÁÕ //escrevendo em ISO-8859-1 OK!
ÇÁÕ //lendo e escrevendo em UTF-8 OK!
ÇÁÕ //lendo e escrevendo em ISO-8859-1 OK!
Outro detalhe é que usando a leitura e escrita em UTF-8 consigo ler caracteres com acento agudo.
2.Falam que se está vindo em UTF-8, ler em UTF-8 sempre manter um padrão para não misturar encodings:
E, como eu escrevendo a String manualmente não apresenta problema nos encoding, provavelmente o encoding do request está errado. Mas…
[code]var url : URLRequest = new URLRequest(enderecodaservlet);
var variables:URLVariables = new URLVariables(); //preencho com parametros que serão passados para o relatório
Como o meu dataSource é preenchido pelo Java (sem uso da servlet)ele não apresenta problemas de encoding.Só estou enfrentando problemas ao passar parâmetros do Flex para o Java pela servlet.
Como esse parâmetros são usados apenas para mostrar quais são os filtros atuais do relatório, peguei uma função de actionScript para retirar os acentos e caracteres especiais antes de enviar o parãmetro para a servlet, isso resolve o problema dos caracteres estranho
Só para enriquecer essa discussão, com Spring eu estava tendo o mesmo problema num formulário jsp simples que insere dados no banco. Consegui resolver quando adicionei estas linhas no web.xml: