Jaxb没有解组unicode 1F609

时间:2017-04-11 09:23:51

标签: java xml unicode jaxb

当解组unicode字符0x1f609(xml版本1.0)时,我们得到了一个ParseError。

根据此文档,它似乎是一个有效的xml char: https://www.w3.org/TR/xml/#charsets

简单地删除此字符将无法解决,因为未来的XML文档中可能还有其他类似的字符。

我们怎么解决这个问题? 它是JAXB-Bug吗?

或者我们是否必须删除其他角色范围内的所有字符? (例如所有表情符号:http://www.isthisthingon.org/unicode/index.phtml?page=1F&subpage=6&hilite=1F609#Emoticons

1 个答案:

答案 0 :(得分:0)

  • 首先仔细检查正在运行的JVM默认Charset是什么以及您的XML Charset是什么。

    JVM - System.getProperty("file.encoding")

    XML - <?xml version="1.0" encoding="UTF-8"?>

  • 可能要使它工作,可以出现这些字符的字符串, 要么需要进行URL编码,要么必须明确使用<![CDATA[

UPD: 您还需要确切地检查该字符在XML输入中的外观。如果它是HTML编码为&#x1F609;&#128521;,那么问题恰恰与&字符无关,而不是关于&#34;眨眼&#34;。无法从XML解析&。它必须是XML编码为&amp;或CDATA。只要CDATA不是一个选项,您可能需要预先使用Interceptor来进行String XML编码。