Em tese o seu sistema envia um XML, logo vc tem que ver pq o seu sistema envia XML com o encoding diferente do esperado.
Ele tira os dados do xml daonde? de um banco de dados? são hard-coded? Tem q procurar a origem do erro e corrigir, ou forçar que a saida seja no encoding que vc quer.
São muitas variaves pra investigar, alguma coisa pode ter acontecido na migração do windows para o Debian. E o conjunto de caracteres padrão do Debian pode ser alterado
Fernando_Generoso_da
Nesse caso, tu tem 2 opções:
primeira: Definir o teu XML como UTF-8, no servidor.
Segunda: Passar como parâmetro para a tua máquina virtual no dispositivo, o encoding ISO-8859-1. -Dfile.encoding=ISO-8859-1
Fernando Rosa
Norxs
Padrão Debian não pode ser alterado nesse caso ... a máquina não é minha ...
Os dados ele pega de um banco de dados ... mais especificamente SQL Server ... onde o banco de dados está num servidor Windows XP
protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException{Stringmsg=null;DataOutputStreamout=null;DataInputStreamin=null;//String type = new String("ISO-8859-1");//String type = new String("UTF-8");try{// define o formato de resposta, que deixa o fluxo mais rapidoresponse.setContentType("application/octetc-stream");//response.setContentType("text/plain;charset=UTF-8");//response.setCharacterEncoding("ISO-8859-1");//response.setCharacterEncoding("UTF-8");//request.setCharacterEncoding("UTF-8");out=newDataOutputStream(response.getOutputStream());in=newDataInputStream(request.getInputStream());if(request.getParameter("pes")!=null){// envia pesquisalog.info("Mobile request xml");DocumentdocXML=MobileXml.buildXML();out.write(convertToSendMobile(newXMLOutputter().outputString(docXML)));msg=newString("Send to mobile xml");log.info(msg);return;}}catch(IOExceptionioe){if(msg!=null)log.error(msg);}finally{if(out!=null){try{out.close();}catch(IOExceptionioe){ioe.printStackTrace();}}if(in!=null){try{in.close();}catch(IOExceptionioe){ioe.printStackTrace();}}}}
Já tive problemas com encoding usando HTC, mas programando com Compact .NET Framework. Ele não suporta UTF-8. A única solução foi fazer com que o servidor enviasse em ISO-8859-1 mesmo. No caso, você disse que não tem acesso ao server, então a coisa complica
N
npereirajr
Calma lá… vc disse que não tem acesso ao server físico ou à aplicação server-side?
Você pode alterar a aplicação server-side?
Norxs
eu não posso alterar as configurações do sistema operacional do servidor …
o servlet que envia esses dados para o mobile eu posso alterar …
Norxs
sugestão???
Norxs
Fernando Generoso da Rosa:
Nesse caso, tu tem 2 opções:
primeira: Definir o teu XML como UTF-8, no servidor.
Segunda: Passar como parâmetro para a tua máquina virtual no dispositivo, o encoding ISO-8859-1. -Dfile.encoding=ISO-8859-1
Fernando Rosa
essa solução foi adotada … mas agora o erro se da assim
O jo?o est? em condi??es de uso?
… repare que está trocando os caracteres especiais por ?
foi trocado tbm o enconding do sistema setando o locale pra pt_BR.ISO8859-1