我正在使用JAXB Marshaller,并且想转义字符。例如,双引号(“)显示为。我该如何处理?

我通过关注其他类似的帖子来设置属性,但没有解决问题。有人可以在这里建议吗?任何帮助表示赞赏。

码:

JAXBContext jc = JAXBContext.newInstance(object.getClass().getPackage().getName());

        Marshaller marshaller = jc.createMarshaller();
        marshaller.setProperty("jaxb.encoding", "Unicode");
        marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
        marshaller.setProperty(CharacterEscapeHandler.class.getName(), new CharacterEscapeHandler() {
            @Override
            public void escape(char[] ch, int start, int length, boolean isAttVal, Writer out) throws IOException {
                out.write( ch, start, length );
            }
        });
        marshaller.marshal(object, stringWriter);

最佳答案

编组人员应该能够使用编码

marshaller.setProperty("jaxb.encoding", "UTF-8");

关于java - 如何使用JAXB Marshaller处理转义字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48696930/

10-12 05:13