当前位置: 首页 > 知识库问答 >
问题:

国际字符的JAXB解封导致问号(?)

盖锐
2023-03-14
public static AutnResponse convertXmlToResponse(String xml) {
    AutnResponse resp = null;

    try {
        JAXBContext jc = JAXBContext.newInstance(AutnResponse.class);
        Unmarshaller unmarshaller = jc.createUnmarshaller();

        resp = (AutnResponse) unmarshaller.unmarshal(new InputStreamReader(new ByteArrayInputStream(xml.getBytes()),"UTF-8"));
    } catch(Exception ex) {
        System.out.println("Caught exception trying to unmarshal XML file: " + ex.getMessage());
        ex.printStackTrace(System.out);
    }

    return resp;
}

我是不是忽略了什么?任何帮助,提示或其他资源将非常感谢。我搜索了无数的谷歌列表,但无法解决这个问题。

共有1个答案

邹嘉荣
2023-03-14
xml.getBytes()

...应该是...

xml.getBytes("UTF-8")

...以便代码转换操作是对称的。

但既然已经有了字符数据,就用...

unmarshaller.unmarshal(new StringReader(xml));
 类似资料:
  • 我试图解组xml导致saxparser异常,因为元素的值有一个未正确关闭的标记元素。这是我得到的,我必须处理的。 这里是示例xml- 上面的xml和其他字符串一起作为命令的值,标签没有正确关闭,导致以下异常- [org.xml.sax.saxpasseeption;行号:1;列号:212;元素类型“ctag”后面必须跟有属性规范,” 将xml输入作为字符串阅读器提供给unMarshall 我有两个

  • 我正在尝试使用JAXB进行封送处理。 我的输出是这样的: ...但我需要这样的输出: 如果取消对代码的注释,则会得到。没有它,我可以编译,但我不能得到所需的精确输出。 我的豆子长这样: 适配器类

  • 我有这些课程: 用户 地址 输出 我如何解决这个问题?我是否可以使用一些JAXB注释?怎么做?还是需要创建某种类型的XmlAdapter?(我试过这个,但没有成功……)

  • 我正在创建一个日志,它由列表中的一个数组组成,数组是每个新条目,列表是日志。以下是我迄今为止试图解决的问题: 我在尝试实现这一点时遇到了很多困难,但现在仍然没有。我试图做的是在数组中使用时间、标题和文本的3个索引空间,然后将这3个组合到列表中,使它们成为列表中的单个元素,因此当我搜索标题时,它们会作为一个组出现。 我试图在声明日志时使用普通字符串列表,但如果不指定要插入的索引,我就无法将数组添加到

  • 在这个例子中,我们将演示如何解析不同地区的数字。 文件:IOTester.java - 执行上面示例代码,得到以下结果 -

  • 我在用 似乎被正确地转义为,但是没有转义,而是变成了,这给我带来了错误。我找到了,但在本例中没有任何变化。