gpt4 book ai didi

java - xml 解析错误错误 Unmarshaling failed due to :Parsing Error : Character reference "�" is an invalid XML character

转载 作者:行者123 更新时间:2023-12-01 19:04:01 25 4
gpt4 key购买 nike

Blockquote

解析器在 3/4 处失败,并显示消息 Unmarshaling failed due to :
解析错误:

Character reference "�" is an invalid XML character.

converted internally to �˰ھ ���� �Ÿ��Ͱ��ƿ� �� ���� �ϰ� �ִ°�? by parser while parsing

在 ³ 角色上实际上失败了。

现在我的问题是我必须采取什么选择才能让它通过?我尝试将数据放入 cdata 部分,但仍然失败。
我正在使用旧的 castor.jar 和 xerces.jar 以及 jdk 1.4,我无法更改。添加更多详细信息 - 大文件具有 xml 数据,如 ¸°Ú⁄î¿° ¸¶¶3ª °Å¸±°Í°°⁄Æ¿°data> 现在该文件是使用 sax 解析器处理的。在 strartElement 上,我们再次开始收集数据,在 endElement 上,我们尝试使用

解码整个数据
   Events dom = (Events) um.unmarshal(new StringReader(xmlChunk.toString()));

正如您所知,此时数据将被 sax 解析器有效地转换为实体,我们正在对数据进行数字编码,如上面的数字所示。

我能够在 win7 机器上处理相同的文件,而无需更改 jdk 或代码。并在内部将其转换为不同的字符实体..
相同的代码在win7上处理时工作正常!和字符实体内部它正在改变的是 -

converted internally to ¾Ë°Ú¾î¿° ¾ó¸¶³ª °Å¸±°Í°°¾Æ¿° ³Ê Áö±Ý ÇÏ°í Àִ°Å? by parser while parsing 

。现在我在这里不知所措,这没有意义......

最佳答案

假设的实体是DBA3,它位于Unicode代理字符范围内。这意味着您的输入要么是 UCS-16/UTF-16,要么是乱码。如果这是 UCS-16,则字符实体表示形式是无效的 XML。 XML 规范说:

Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]

Characters referred to using character references MUST match the production for Char.

<小时/>

更改 XML 解析器的平台不太可能解决此问题。

我会研究您用来处理输入文本的机制(以确保您没有得到错误的字符编码)并生成字符引用。创建后者时,您需要测试代理对“代码单元”,并将它们组合成代码点,然后从代码点生成字符引用。

<小时/>

另一件事是,如果您尝试使用 CDATA 的字符引用在 XML 文档中嵌入二进制数据......不要!这是行不通的。您必须将二进制数据转换为 Hex 或 Base64 或类似的数据,并将嵌入到文档中。

关于java - xml 解析错误错误 Unmarshaling failed due to :Parsing Error : Character reference "&#56227;" is an invalid XML character,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10951421/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com