Cómo una cosa tan sencilla se complica tanto. Total, unos acentos de nada. Pero claro, la informática la dominan los ingleses, que carecen de estas lindezas de la escritura. Y menos mal que alguien le da por inventar un "nuevo" código de caracteres ISO-8859-1... Y claro, si trabajas en Java con byte[] necesitas decirle el tipo de codificación que hay en esa matriz de byte. Y cómo? Pues al final con InputSource (org.xml.sax.InputSource) que dispone de un método para decir qué tipo de codificación tiene, y así forzar a que el SAXBuilder cree el documento XML correctamente. Espero que pueda servir a alguien....
public Document genXMLDocument(byte[] b){
Document doc = null;
try {
ByteArrayInputStream bais = new ByteArrayInputStream(b);
InputSource is = new InputSource(bais);
is.setEncoding("ISO-8859-1");
SAXBuilder sxb = new SAXBuilder();
doc = sxb.build(is);
} catch (JDOMException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return doc;
}
1 comentario:
Bien bien, esta nota me sirvió bastante.
Gracias.
Publicar un comentario