java - JAXB / Java 1.6 / 不可打印字符
问题描述
背景:我正在阅读不同旧操作系统(Aix、HP-UX ...)上的文件结构,并将一些路径和文件信息转换为 XML 文档。
问题:有时,有以不可打印字符命名的路径/文件,例如(用 列出ls -b
):
important_document\033[D\033[-
这些路径/文件名被放入一个对象保存的字符串中,该对象又被编组为 XML 文档,如下所示(writer
is):
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 拒绝。
问题:有没有办法让编组器在输出中编码不可打印的字符?
我可以清理路径/文件名,但我宁愿它发生在文档范围内,而不必清理所有单独的数据点。
解决方案
推荐阅读
- python - 设置 pygame 表面的宽度和高度
- javascript - 使用静态点击功能链接点击问题。如何解决这个问题?
- loadrunner - 在 loadrunner 中上传文件
- xml - 如何获取 XML 文件中的相对路径?
- php - 清除php v5.6字符串数组时防止内存丢失的最佳方法是什么
- vue.js - Vue.js 模态窗口在从另一个组件单击时未打开
- c++ - 虽然循环超过限制
- asp.net-mvc-routing - Asp.Net Core Scaffolded 'Register' 和 'Login' 重定向在 Azure AppService 中不起作用
- c# - 如何为多态性正确配置 swashbuckle
- python - 是否有可能通过 selenium 自动化将 HTML 标记插入驻留在服务器上的文件中?