xstream:Invalid byte 2 of 2-byte UTF-8 sequence
来源:互联网 发布:离线地图标注软件 编辑:程序博客网 时间:2024/05/05 08:43
xstream:Invalid byte 2 of 2-byte UTF-8 sequence
- 博客分类:
- Exception
JavaXML
blog迁移至 :http://www.micmiu.com
在用XStream将xml 反序列化 为Javabean时报错,信息如下:
com.thoughtworks.xstream.io.StreamException: : Invalid byte 2 of 2-byte UTF-8 sequence. at com.thoughtworks.xstream.io.xml.DomDriver.createReader(DomDriver.java:88)at com.thoughtworks.xstream.io.xml.DomDriver.createReader(DomDriver.java:70)at com.thoughtworks.xstream.XStream.fromXML(XStream.java:891)at michael.xstream.XtreamTestMain.main(XtreamTestMain.java:71)Caused by: com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: Invalid byte 2 of 2-byte UTF-8 sequence.at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.invalidByte(UTF8Reader.java:684)at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.read(UTF8Reader.java:369)at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.load(XMLEntityScanner.java:1742)at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.peekChar(XMLEntityScanner.java:487)at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2687)at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:511)at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808)at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119)at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:235)at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:284)at com.thoughtworks.xstream.io.xml.DomDriver.createReader(DomDriver.java:79)... 3 more
产生的原因:简单的说就是XML文件的编码和解析XML时用的编码不一致产生的问题。
由于文件会以系统的默认编码对文件进行保存,在中文版的window下Java的默认的编码为GBK,所以默认生成的xml文件是以GBK格式来保存的,所以我们使用GBK、GB2312编码来生成xml文件能正确的被解析,而以UTF-8格式生成的文件不能被xml解析器所解析的原因,其实和之前文章碰到的问题类似:http://sjsky.iteye.com/blog/1053931
解决办法 :
就是为DOM解析器指定好编码utf-8,代码如下
1.XStream xStream = new XStream(new DomDriver("utf-8"));
有关XStream序列化JAVA对象为XML以及反序列化的使用说明可参见 : http://sjsky.iteye.com/blog/784434
- xstream:Invalid byte 2 of 2-byte UTF-8 sequence
- Invalid byte 2 of 2-byte UTF-8 sequence解决方案
- 错误“Invalid byte 2 of 2-byte UTF-8 sequence ”
- Invalid byte 2 of 2-byte UTF-8 sequence.异常
- Invalid byte 2 of 2-byte UTF-8 sequence解决方案
- Invalid byte 2 of 2-byte UTF-8 sequence
- Invalid byte 2 of 2-byte UTF-8 sequence
- xml:Invalid byte 2 of 2-byte UTF-8 sequence
- dom4j UTF-8 乱码 Invalid byte 2 of 2-byte UTF-8 sequence
- Tomcat,java.io.UTFDataFormatException:Invalid byte 2 of 2-byte UTF-8 sequence问题的解决
- 编码问题之:java.io.UTFDataFormatException: Invalid byte 2 of 2-byte UTF-8 sequence.
- jdom解析xml时报错:Invalid byte 2 of 2-byte UTF-8 sequence
- dom4j的Invalid byte 2 of 2-byte UTF-8 sequence错误
- Dom4j中文异常处理:Invalid byte 2 of 2-byte UTF-8 sequence
- org.xml.sax.SAXParseException: Invalid byte 2 of 2-byte UTF-8 sequence.
- web services axis1客户端Invalid byte 2 of 2-byte UTF-8 sequence
- paip.解决Invalid byte 2 of 2-byte UTF-8 sequence.
- sax 解析 xml异常 Invalid byte 2 of 2-byte UTF-8 sequence
- JQuery 实现二级下拉菜单
- Android 2.3 SD卡挂载流程浅析(六)
- 监听键盘
- JQuery基本选择器
- gpio函数
- xstream:Invalid byte 2 of 2-byte UTF-8 sequence
- Android 2.3 SD卡挂载流程浅析(七)
- 。
- 算法与数据结构--拓扑排序
- Linux下常用的函数调用栈规范
- Java程序员从笨鸟到菜鸟之(序言)+全部链接
- JNDI连接数据库
- Jquery实现的文本展开和收缩
- 时钟周期、振荡周期、机器周期、CPU周期、状态周期、指令周期、总线周期、任务周期