我是使用WoodStox的新手。我必须阅读所有可能的Unicode字符组合并写入XML文件。 WoodStox无法读取某些Unicode字符。有人可以帮助我如何在遇到时跳过该字符或在XML文件中写入该Unicode字符的解决方案。
我得到的例外是 24364002-data-set-results.xml的第1行第1404735行出错: SXXP0003:XML解析器报告的错误:字符引用“& #xfffe”是无效的XML字符。 例外情况是:net.sf.saxon.trans.XPathException:org.xml.sax.SAXParseException:字符引用“& #xfffe”是无效的XML字符。
答案 0 :(得分:1)
我也不熟悉WoodStox,但我可以说FFFE确实不是一个有效的Unicode字符,因此输入问题可能比解析器更多。一些编码器以UTF-16编码最常使用FFFE来指示字节顺序(小端或大端)。根据它是以FFFE还是以FEFF的形式回读,解码器知道选择哪个字节顺序。但它不是标准,并非所有解码器都支持它。
当这样使用时,它始终是文件的前两个字节。
所以,你需要检查的是:
最坏的情况是,如果您的文件以FFFE或FFEF开头,只需将其从文件中删除即可将其提供给WoodStox。但是,请确保在WoodStox中设置正确的字节顺序。