JAXB / Java 1.6 / непечатные символы - PullRequest
0 голосов
/ 05 июля 2018

Справочная информация : Я читаю файловую структуру на разных старых ОС (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.

Вопрос : Есть ли способ заставить маршаллер кодировать непечатаемые символы в выводе?

Я мог бы очистить путь / имя файла, но я бы предпочел, чтобы это происходило по всему документу без необходимости очищать все отдельные точки данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...