[RESOLVIDO]Problema de Encoding

3 respostas
F

Pessoal estou com um problema, tenho um codigo que gera um xml a partir de um Object, um marshall, segue a parte importante.

marshaller.setProperty(Marshaller.JAXB_ENCODING, "UTF-8");

Problema que quando rodo esta classe na minha app, recebo um Invalid byte 2 of 3-byte UTF-8 sequence na cara, sempre que houver acento ou caracter especial como cedilha e etc.

Vejam onde cheguei, no eclipse a workspace esta toda como “ISO-8859-1”, se eu for no eclipse e mudar tudo pra UTF-8, paro de receber o erro, o mesmo acontece se eu mudar a linha para ISO e deixar o eclipse como ISO tambem.

marshaller.setProperty(Marshaller.JAXB_ENCODING, "ISO-8859-1");

o erro tambem para.

Agora eis o problema nao quero/posso fazer o que citei acima para sanar o problema, o marshal deve ser UTF-8, obrigaçao da NF-e, ja mudar o eclipse para utf, fica tenso, zilhoes de classes, ficam com a acentuacao e cedilhas todas lascadas.

Ao que entendi o java considera o encoding do arquivo sendo executado é isto mesmo?

Tem como sanar este problema? Tipo setar o encoding da app em runtime ou algo assim. Pelo que entendi o marshall e a app tem que ter o mesmo encoding.

3 Respostas

F

Esqueci de postar, o erro ocorre aqui:

ByteArrayInputStream biteArray = new ByteArrayInputStream(xml.getBytes());

        Document doc = factory.newDocumentBuilder().parse(biteArray);  //AQUI DA ERRO INVALID BYTE 2...

sendo xml a String gerada pelo marshaller!

F

Ninguem? To enrolado :cry:

F

nussa viajei no tomate, que vergonha :oops:

ByteArrayInputStream biteArray = new ByteArrayInputStream(xml.getBytes("UTF-8"));
Criado 5 de setembro de 2009
Ultima resposta 9 de set. de 2009
Respostas 3
Participantes 1