Hi, Lynton wrote:
> [This is the java code] > > DadosPessoaisTO dados = new DadosPessoaisTO(); > dados.setNome("FlÁvio"); well, this already implies that you Java source code is in UTF-8 and that you have told your compiler that your source is in UTF-8. You should use \uXXXX encoding here. > String a = formatTransferObject(dados); > System.out.println(a); > DadosPessoaisTO dadosConvert = parseTransferObject(a); > System.out.println(dadosConvert.getNome()); > > > public static String formatTransferObject(Object to) { > > ByteArrayOutputStream bytes = new ByteArrayOutputStream(); > > > Writer writer = new java.io.OutputStreamWriter(bytes, > Charset.forName("UTF-8")); > > > new XStream(new StaxDriver()).toXML(to, writer); > > > return new String(bytes.toByteArray()); ... and this last statement implies that your OS runs with UTF-8 as system encoding ... use "new String(bytes.toByteArray(), "UTF-8")" instead. > } > > @SuppressWarnings("unchecked") > public static <TO> TO parseTransferObject(String xml) { > try { > return (TO) new XStream(new StaxDriver()).fromXML(new > InputStreamReader(new java.io.ByteArrayInputStream(xml.getBytes()), > "UTF-8")); ... your code again implies a system encoding of UTF-8, please use "xml.getBytes("UTF-8")" instead. > > } catch (UnsupportedEncodingException e) { > throw new RuntimeException(e); > } > } > > [this is result of the FIRST system out] > > <?xml version="1.0" encoding="UTF-8"?> > <br.com.br.aarh.dadospessoais.to.DadosPessoaisTO><nome>FlÃ?vio</nome><sexo> > </sexo><estadoCivil></estadoCivil><nascimento><pais></pais></nascimento> > <nacionalidade></nacionalidade><comprovante></comprovante> > <comprovanteDocumentoPessoalDTO></comprovanteDocumentoPessoalDTO> > </br.com.br.aarh.dadospessoais.to.DadosPessoaisTO> > > [this is the result of the second system out] > Fl??vio Cheers, Jörg --------------------------------------------------------------------- To unsubscribe from this list, please visit: http://xircles.codehaus.org/manage_email