Ciao a tutti,
spiego il problema sperando di aver postato nella sezione corretta: trattasi di encoding xml mediante classi java.
Il problema sta nel fatto che genero un file xml con encoding ISO-8859-1 in questo modo:
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DOMReader reader = new DOMReader();
org.dom4j.Document docout = reader.read(doc);
OutputFormat outF = OutputFormat.createPrettyPrint();
outF.setEncoding("ISO-8859-1");
XMLWriter wr = new XMLWriter(baos, outF);
wr.write(docout);
out.write(baos.toByteArray());
out.flush();
out.close();
L'oggetto doc è un istanza della classe org.w3c.dom.Document, out è un OutputStream.
Lo stream baos viene passato ad un servizio come array di byte (baos.toByteArray())
Chi però si occupa di ricevere lo stream mi dice che gli arriva con i caratteri speciali accentati errati (es: àèìòù -> ÓÞý‗¨).
Mi chiedo quindi se il problema non sia suo che non legge lo stream con la medesima codifica con cui è costruito.
A me pare corretto il mio stream, se faccio una system.out vedo effettivamente i caratteri così, mentre se creo un file mediante un FileOutputStream il file xml creato e lo apro con un browser, i caratteri accentati sono correttamente interpretati.
Qualcuno mi può dare una mano per favore a capire se sbaglio io o chi legge lo stream?
Grazie in anticipo

Rispondi quotando