当解组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)
答案 0 :(得分:0)
首先仔细检查正在运行的JVM默认Charset是什么以及您的XML Charset是什么。
JVM - System.getProperty("file.encoding")
XML - <?xml version="1.0" encoding="UTF-8"?>
可能要使它工作,可以出现这些字符的字符串,
要么需要进行URL编码,要么必须明确使用<![CDATA[
。
UPD:
您还需要确切地检查该字符在XML输入中的外观。如果它是HTML编码为😉
或😉
,那么问题恰恰与&
字符无关,而不是关于&#34;眨眼&#34;。无法从XML解析&
。它必须是XML编码为&
或CDATA。只要CDATA不是一个选项,您可能需要预先使用Interceptor来进行String XML编码。