10 mayo 2007

Java Byte[] y los acentos

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:

cristian dijo...

Bien bien, esta nota me sirvió bastante.
Gracias.