我使用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>
关于如何克服这个问题的任何建议?
答案 0 :(得分:0)
MyHandler handler = new MyHandler();
in =
new ByteArrayInputStream(text.getBytes**("UTF-8")**);
做了这个伎俩