我有一个处理xml文件的Java程序。当基于特定模式( xsd/xsl)将xml转换为另一个xml文件时,它会抛出以下错误。
只有一个xml文件有这样的xml标记,才会抛出这个错误。
<abc>xxx yyyy “ggggg vvvv” uuuu</abc>但在删除或重新键入两个引号后,它不会抛出错误。
任何人,请帮助我解决这个问题。
java.io.CharConversionException:不支持大于4个字节的字符:字节0x93表示.org.apache.xmlbeans..impl.piccolo.xml.UTF8XMLDecoder.decode(UTF8XMLDecoder.java:162)的长度大于4个字节
<?xml version= “1.0’ encoding =“UTF-8” standalone =“yes “?><xyz xml s=“http://pqr.yy”><Header><abc> aaa “cccc” aaaaa vvv</abc></Header></xyz>. 发布于 2018-10-26 18:25:45
正如其他人在评论中报告的那样,它失败了,因为排版引号是用Windows-1292编码的,而不是UTF-8编码的,所以解析器没有设法解码它们。
XML声明中声明的编码必须与用于字符的实际编码匹配。
为了找出这个错误是如何产生的,并防止它再次发生,我们需要知道这个(wannabe) XML文件来自哪里,以及它是如何创建的。
我的猜测是,有人使用了“智能”编辑器;尤其是Microsoft编辑器,因为它将您输入的内容更改为Microsoft认为您想要输入的内容而臭名昭著。如果要手工编辑XML,最好使用支持XML的编辑器。
https://stackoverflow.com/questions/53002856
复制相似问题