关于dom4j解析编码的问题,org.xml.sax.SAXParseException: Invalid byte 1 of 1-byte UTF-8 sequence

javalead 2008-12-18 11:10:50
public class Test2 {

private static final String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><PCIC-WD><RESULT-INFO WEBSVRRESULT=\"SUCCESS\" COMMENT=\"可以正常核销!\" KEEP=\"\"/></PCIC-WD>";


public static void main(String[] args) throws DocumentException {

InputStream inputStream = new ByteArrayInputStream(xml.getBytes());
SAXReader saxReader = new SAXReader();
saxReader.read(inputStream).getRootElement();

}

}

上面是一段xml的字符串,应为在系统中是webservice返回的,为了方便就直接在程序里写了,运行就抛下面的异常,我想请问一下这是为什么,有什么解决的办法.编码的问题一直是我的搞不懂的地方.

Exception in thread "main" org.dom4j.DocumentException: Error on line 1 of document : Invalid byte 1 of 1-byte UTF-8 sequence. Nested exception: Invalid byte 1 of 1-byte UTF-8 sequence.
at org.dom4j.io.SAXReader.read(SAXReader.java:482)
at org.dom4j.io.SAXReader.read(SAXReader.java:343)
at com.person.test.Test2.main(Test2.java:18)
Nested exception:
org.xml.sax.SAXParseException: Invalid byte 1 of 1-byte UTF-8 sequence.
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:236)
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:215)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:386)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:316)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1810)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:368)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:834)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:148)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1242)
at org.dom4j.io.SAXReader.read(SAXReader.java:465)
at org.dom4j.io.SAXReader.read(SAXReader.java:343)
at com.person.test.Test2.main(Test2.java:18)


期待您的帮助,谢谢!


...全文
4658 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangqin12356 2012-05-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
UTF-8编码中中文解析有问题
将编码格式改成“GB2312”后就可以正常解析了。<?xml version="1.0" encoding="GB2312"?>
[/Quote]

--非常感谢
yantaoguo 2012-01-18
  • 打赏
  • 举报
回复
关键是xml是给定的,内部不能修改编码,读取xml时,用了getByets("UTF-8"),会有中文乱码,怎么解决编码产生的乱码呢
z778856 2011-12-29
  • 打赏
  • 举报
回复
- - 对我来说没用。。。。。。。。。
Arno.Han 2011-11-27
  • 打赏
  • 举报
回复
多谢啊 学习了
wangwenjia1981 2011-10-13
  • 打赏
  • 举报
回复
学习学习
野鹤闲云 2011-10-09
  • 打赏
  • 举报
回复
学习下
aprilpingguo 2011-09-29
  • 打赏
  • 举报
回复
看回复
xindick2222222 2011-08-17
  • 打赏
  • 举报
回复
非常感谢~~太好了
lizhiguoemail 2011-05-19
  • 打赏
  • 举报
回复
OK ```
sdau20072000 2011-05-09
  • 打赏
  • 举报
回复
hhhhhhhhhhhhhhhhhhhh
go299 2011-04-17
  • 打赏
  • 举报
回复
很好,成功
chiflee 2011-02-11
  • 打赏
  • 举报
回复
学习学习
yasaso 2010-11-30
  • 打赏
  • 举报
回复
vczvcxzvcxzvcx
qq327586498 2010-11-23
  • 打赏
  • 举报
回复
111sssssssssssssssssssssss
wangtaobig 2010-04-07
  • 打赏
  • 举报
回复
dddd
javalead 2009-02-19
  • 打赏
  • 举报
回复
o了
liwenbin420 2009-01-13
  • 打赏
  • 举报
回复
UTF-8编码中中文解析有问题
将编码格式改成“GB2312”后就可以正常解析了。<?xml version="1.0" encoding="GB2312"?>

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧