使用 xmlbeans 生成的 jar  读取 xml文件,报了以下错误
java.io.CharConversionException: Characters larger than 4 bytes are not supported: byte 0xa1 implies a length of more than 4 bytes
at org.apache.xmlbeans.impl.piccolo.xml.UTF8XMLDecoder.decode(UTF8XMLDecoder.java:162)
at org.apache.xmlbeans.impl.piccolo.xml.XMLStreamReader$FastStreamDecoder.read(XMLStreamReader.java:762)
at org.apache.xmlbeans.impl.piccolo.xml.XMLStreamReader.read(XMLStreamReader.java:162)
at org.apache.xmlbeans.impl.piccolo.xml.PiccoloLexer.yy_refill(PiccoloLexer.java:3474)
at org.apache.xmlbeans.impl.piccolo.xml.PiccoloLexer.yylex(PiccoloLexer.java:3958)
at org.apache.xmlbeans.impl.piccolo.xml.Piccolo.yylex(Piccolo.java:1290)
at org.apache.xmlbeans.impl.piccolo.xml.Piccolo.yyparse(Piccolo.java:1400)
at org.apache.xmlbeans.impl.piccolo.xml.Piccolo.parse(Piccolo.java:714)
at org.apache.xmlbeans.impl.store.Locale$SaxLoader.load(Locale.java:3435)
at org.apache.xmlbeans.impl.store.Locale.parseToXmlObject(Locale.java:1270)
at org.apache.xmlbeans.impl.store.Locale.parseToXmlObject(Locale.java:1257)
at org.apache.xmlbeans.impl.schema.SchemaTypeLoaderBase.parse(SchemaTypeLoaderBase.java:345)
at org.apache.xmlbeans.impl.schema.SchemaTypeLoaderBase.parse(SchemaTypeLoaderBase.java:252)
at sample.xmlbean.CustomersDocument$Factory.parse(Unknown Source)
at xmlBean.CustomerXMLBean.customerReader(CustomerXMLBean.java:37)
at xmlBean.CustomerXMLBean.main(CustomerXMLBean.java:22)从字面上看不懂是什么问题。

解决方案 »

  1.   

    没有什么字符超过 asc字符啊
      

  2.   

    字面意思是字符家码的时候,出现先错误。(不支持超过4个字节表示一个字符的情况)
    估计是你生成的XML文件,不是UTF-8编码的,然后用UTF-8编码来解码,产生了异常。
      

  3.   


    xml文件头是这样指定的啊 <?xml version="1.0" encoding="UTF-8"?>xml文件还有人指定其他编码?
      

  4.   

    哦。如果是用插件生成的XML,应该不会有编码问题,如果是自己生成的文件,有可能会忽略编码问题。楼主再检查一下,那个XML文件,<?xml version="1.0" encoding="UTF-8"?> 这个之前,有么有回车、换行或者空格什么的符号 ?如果有,去掉试试。如果没有,那就不知道什么原因了。
      

  5.   


    嗯,有特殊符号,我用记事本没看出来,用 utrl-edit 就看出来了, Thanks! 结贴散分
      

  6.   

    里面有个 中文 隆 字的乱码,显示为 一些希腊字符组成,下次真的要长个心眼,utrl-edit真不错