java.io.UTFDataFormatException:无效的UTF8编码

时间:2015-02-25 19:42:10

标签: java utf-8 sax saxparser

我使用sax解析器来解析一些xml文件。在尝试这样做的同时,我遇到了异常:

java.io.UTFDataFormatException: Invalid UTF8 encoding.
    at oracle.xml.parser.v2.XMLUTF8Reader.checkUTF8Byte(XMLUTF8Reader.java:174)
    at oracle.xml.parser.v2.XMLUTF8Reader.readUTF8Char(XMLUTF8Reader.java:213)
    at oracle.xml.parser.v2.XMLUTF8Reader.fillBuffer(XMLUTF8Reader.java:134)
    at oracle.xml.parser.v2.XMLByteReader.saveBuffer(XMLByteReader.java:457)
    at oracle.xml.parser.v2.XMLReader.fillBuffer(XMLReader.java:2654)
    at oracle.xml.parser.v2.XMLReader.scanWhiteSpace(XMLReader.java:1749)
    at oracle.xml.parser.v2.NonValidatingParser.parseText(NonValidatingParser.java:1662)
    at oracle.xml.parser.v2.NonValidatingParser.parseElement(NonValidatingParser.java:1574)
    at oracle.xml.parser.v2.NonValidatingParser.parseRootElement(NonValidatingParser.java:442)
    at oracle.xml.parser.v2.NonValidatingParser.parseDocument(NonValidatingParser.java:388)
    at oracle.xml.parser.v2.XMLParser.parse(XMLParser.java:232)
    at weblogic.xml.jaxp.RegistryXMLReader.parse(RegistryXMLReader.java:173)
    at javax.xml.parsers.SAXParser.parse(SAXParser.java:395)

xml看起来像:

<?xml version="1.0" encoding="UTF-8"?>
<Workflow xmlns="http://soap.sforce.com/2006/04/metadata">
    <alerts>
        <fullName>AccountTerminationImplementationCannotbePerformed2</fullName>
        <description>Account Termination Implementation Cannot be Performed 2</description>
        <protected>false</protected>
  ....
....
</Workflow>

关于如何克服这个问题的任何建议?

1 个答案:

答案 0 :(得分:0)

        MyHandler handler = new MyHandler();
        in =
            new ByteArrayInputStream(text.getBytes**("UTF-8")**);

做了这个伎俩