JAXB / Java 1.6 /不可打印字符

时间:2018-07-05 08:38:27

标签: java jaxb

背景:我正在不同的旧操作系统(Aix,HP-UX ...)上读取文件结构,并将一些路径和文件信息转换为XML文档。

问题:有时,有些路径/文件用不可打印的字符命名(例如,以ls -b列出):

important_document\033[D\033[-

这些路径/文件名被放入一个对象所保存的字符串中,该对象又被编组为XML文档,例如{writer是:

JAXBContext context = JAXBContext.newInstance(Inventory.class);
Marshaller marshaller = context.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
marshaller.setProperty(Marshaller.JAXB_ENCODING, "UTF-8");
marshaller.marshal(inventory, writer);

编组人员没有抱怨无法打印的字符,而是愉快地创建了XML文档,该文档被其他工具拒绝为无效XML。

问题:有什么方法可以使编组器在输出中编码不可打印的字符?

我可以清理路径/文件名,但我希望它在文档范围内发生,而无需清理所有单独的数据点。

0 个答案:

没有答案