Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 转换xml文件时的CharConversionException_Java_Xml_Xml Parsing - Fatal编程技术网

Java 转换xml文件时的CharConversionException

Java 转换xml文件时的CharConversionException,java,xml,xml-parsing,Java,Xml,Xml Parsing,我有一个处理xml文件的Java程序。当将xml转换为基于特定模式xsd/xsl的另一个xml文件时,它抛出以下错误 此错误只会引发一个具有如下xml标记的xml文件 <abc>xxx yyyy “ggggg vvvv” uuuu</abc> 但在删除或重新键入两个引号后,不会抛出错误 任何人,请帮助我解决这个问题 java.io.CharConversionException:不支持大于4字节的字符:字节0x93表示长度大于4字节 http://www.org.apa

我有一个处理xml文件的Java程序。当将xml转换为基于特定模式xsd/xsl的另一个xml文件时,它抛出以下错误

此错误只会引发一个具有如下xml标记的xml文件

<abc>xxx yyyy “ggggg vvvv” uuuu</abc>
但在删除或重新键入两个引号后,不会抛出错误

任何人,请帮助我解决这个问题

java.io.CharConversionException:不支持大于4字节的字符:字节0x93表示长度大于4字节 http://www.org.apache.xmlbeans..impl.piccolo.xml.utf8xmldecorder.decodeutf8xmldecorder.java:162

<?xml version= “1.0’ encoding =“UTF-8” standalone =“yes “?><xyz xml s=“http://pqr.yy”><Header><abc> aaa “cccc” aaaaa vvv</abc></Header></xyz>. 

正如其他人在评论中所报告的那样,它失败了,因为排版引号是用Windows-1292编码的,而不是UTF-8编码的,所以解析器无法对它们进行解码

XML声明中声明的编码必须与字符使用的实际编码匹配

为了找出这个错误是如何产生的,并防止它再次发生,我们需要知道这个想要的XML文件来自哪里,以及它是如何创建的


我猜是有人用了一个聪明的编辑;尤其是微软的编辑,因为将您键入的内容更改为微软认为您想要键入的内容而臭名昭著。如果手动编辑XML,最好使用支持XML的编辑器。

答案在跟踪本身中。名称大于4个字节,这是不允许的,那么我需要在哪里检查?我需要对xml文件做什么样的更改?您的xml文件似乎不是UTF-8编码的,而是Windows-1252。在Windows-1252中,“字符编码为0x93,0x93不是有效UTF-8多字节序列的开头共享xml代码无源文件基于UTF-8