【发布时间】:2017-02-26 11:02:12
【问题描述】:
我遇到了一个错误
1 字节 UTF-8 序列的字节 1 无效
在用 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。
【问题讨论】:
-
如果您也可以共享输入,那可能会有所帮助:-)。什么样的文件有问题?你读得怎么样?
-
请提供一种方法让我们重现问题 - 请参阅:minimal reproducible example。
-
我正在通过 mule 读取 java 中的数据如下所示。 InputStream 是 =new ByteArrayInputStream(message.getPayloadAsString("UTF-8").getBytes());
-
文件的编码是什么? XML 本身指定的编码是什么?
-
基本上,您正在读取以 UTF-8 编码的文件,但错误消息告诉您它实际上是以其他方式编码的。您需要找出实际的编码是什么。