Bom Dia,
Sei que esse é um assunto bastante discutido, já li diversos tópicos e página na internet mas não estou conseguindo resolver o problema.
Situação: No Flex eu faço uma chamada para um servlet e passo parâmetros.
Testes:
1.Na leitura do request:
if(request.getParameter("VALOR_1") != null){
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") );
}
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..
System.out.println( "Character Encoding: " + request.getCharacterEncoding() );
request.setCharacterEncoding("UTF-8");
System.out.println( "Character Encoding: " + request.getCharacterEncoding() );
Resultado:
null
UTF-8
O encoding está vazio, e depois coloco ele como UTF-8.E mesmo assim ocorre o problema.
Estou testando e pesquisando a manhã toda e não consigo achar uma solução
