gpt4 book ai didi

java - 如何删除 XML 中的特殊字符,并且在读取此 xml 文件时不应导致错误 "Invalid byte 1 of 1-byte UTF-8 sequence"

转载 作者:太空宇宙 更新时间:2023-11-04 11:44:49 24 4
gpt4 key购买 nike

我收到错误

Invalid byte 1 of 1-byte UTF-8 sequence

在 Java 中读取 XML 文件以生成 XSD 时。

然后我注意到我的 XML 确实有一些特殊字符,例如“””“?& 等。因此,在处理 XML 生成 XSD 之前,我设法在 Java 中删除它们。但挑战在于它是动态数据,因此我们可能不知道会遇到什么样的字符。

我们如何巧妙地删除这些特殊字符?这样它就可以匹配UTF-8编码并且永远不会出现这个问题?

可以在 XSLT 中解决这个问题以删除字符吗?

我们如何从下面的部分中删除这些字符或允许没有问题?

 <string>message</string>
<string>Very good dear laughing colours laken yeh heart bhot karap hota ha brain ke baat nahi sunte ha Allah bhagwan god Na yeh kuy banayai ha dear friends 😢 😢 😢❤👍</string>

<string>message</string>
<string>वक़्त 🕔 और दोस्त_मिलते 👫 तो मुफ्त_हैं, ☺
लेकिन उनकी_कीमत 💵 का अंदाज़ा 😌 तब होता_है, ☝ जब ये कहीं खो_जाते है ।...
#</string>

注意:我将 XML 文档的编码设置为 UTF-8。

最佳答案

您的错误听起来像是您的 XML 文档包含 XML 中禁止的单字节控制字符。 XML 禁止某些字符出现在文档中;请参阅 https://www.w3.org/TR/xml/#charsets 处的 Char 生成方式XML 1.0 中允许字符的列表。

您需要在这些字符到达 XML 之前将其删除;否则您的 XML 将出现格式错误,此时 XSLT 将无法转换您的文档。

如果您需要转换有效 XML 字符,XSLT 可以使用translate 函数来实现。例如,在所有文本节点上运行的 translate(Windows-1252_string, "„“”", "„“”") 应处理 Windows-1252 编码的引号。当然,最好确保该输入在到达 XML 之前就已修复。

关于java - 如何删除 XML 中的特殊字符,并且在读取此 xml 文件时不应导致错误 "Invalid byte 1 of 1-byte UTF-8 sequence",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42450396/

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