`
sjsky
  • 浏览: 918010 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

xstream:Invalid byte 2 of 2-byte UTF-8 sequence

阅读更多
   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,代码如下

 

XStream xStream = new XStream(new DomDriver("utf-8"));

有关XStream序列化JAVA对象为XML以及反序列化的使用说明可参见 :     http://sjsky.iteye.com/blog/784434

 

 

转载请注明来自:Michael's blog @ http://sjsky.iteye.com

----------------------------- 分 ------------------------------ 隔 ------------------------------ 线 ------------------------------

 

 

 

分享到:
评论
1 楼 wpf523 2012-07-03  
赞一个,( ⊙ o ⊙ )

相关推荐

    xstream-1.4.11-API文档-中文版.zip

    赠送jar包:xstream-1.4.11.jar; 赠送原API文档:xstream-1.4.11-javadoc.jar; 赠送源代码:xstream-1.4.11-sources.jar; 赠送Maven依赖信息文件:xstream-1.4.11.pom; 包含翻译后的API文档:xstream-1.4.11-...

    powermock-classloading-xstream-1.4.7

    powermock-classloading-xstream-1.4.7powermock-classloading-xstream-1.4.7powermock-classloading-xstream-1.4.7powermock-classloading-xstream-1.4.7powermock-classloading-xstream-1.4.7powermock-class...

    xstream-1.4.7-API文档-中文版.zip

    赠送jar包:xstream-1.4.7.jar; 赠送原API文档:xstream-1.4.7-javadoc.jar; 赠送源代码:xstream-1.4.7-sources.jar; 赠送Maven依赖信息文件:xstream-1.4.7.pom; 包含翻译后的API文档:xstream-1.4.7-javadoc-...

    xstream-1.4.7-API文档-中英对照版.zip

    赠送jar包:xstream-1.4.7.jar; 赠送原API文档:xstream-1.4.7-javadoc.jar; 赠送源代码:xstream-1.4.7-sources.jar; 赠送Maven依赖信息文件:xstream-1.4.7.pom; 包含翻译后的API文档:xstream-1.4.7-javadoc-...

    xstream-1.4.11-API文档-中英对照版.zip

    赠送jar包:xstream-1.4.11.jar; 赠送原API文档:xstream-1.4.11-javadoc.jar; 赠送源代码:xstream-1.4.11-sources.jar; 赠送Maven依赖信息文件:xstream-1.4.11.pom; 包含翻译后的API文档:xstream-1.4.11-...

    xstream-1.3.1-sae-liufeng

    修改XStream源码,解决SAE不支持XStream的问题。

    xstream-1.4.20.jar

    xstream-1.4.20.jar

    xstream最新版 - xstream-1.4.18.jar

    xstream最新版jar包

    com.springsource.com.thoughtworks.xstream-1.3.1.jar

    jar包,官方版本,自测可用

    XStream:Object与Xml字符串 互相转换

    XStream是一个强大的Java库,它允许开发者方便地将Java对象序列化为XML,同时也能将XML数据反序列化回对应的Java对象。这个过程对于数据存储、网络传输或者XML配置文件的处理非常有用。在处理多个同名子节点以及节点...

    xstream-1.4.15.jar

    XStream 反序列化漏洞(CVE-2020-26258 & 26259),修复jar包 xstream-1.4.15.jar Xstream 是 Java 类库,用来将对象序列化成 XML (JSON) 或反序列化为对象。XStream 是一款开源软件,允许在 BSD 许可证的许可下分发...

    XStream 1.4.11 jar包

    2. **自动映射**:XStream 可以自动处理 Java 类和 XML 元素之间的映射。默认情况下,它会根据类名和字段名来创建 XML 结构,但也可以通过注解或自定义转换器进行自定义映射。 3. **类型安全**:XStream 在反序列化...

    微信开发用到的jar包:json 解析,dom4j-1.6.1.jar,xstream-1.3.1.jar

    `xstream-1.3.1.jar`是XStream的一个版本,支持将任何复杂的Java对象结构转换为同等的XML表示,同时也支持反向转换。在微信开发中,如果需要将Java对象转换为XML进行传输,或者从微信返回的XML数据中恢复对象状态,...

    解决XStream注解同名冲突

    com.thoughtworks.xstream.converters.ConversionException: No field 'null' found in class '.....(注解的类路径)' ---- Debugging information ---- message : No field 'null' found in class '.....' cause...

    xstream-1.4.5.jar

    xstream xstream-1.4.5.jar

    xstream-1.4.8最齐全的jar包

    标题中的"xstream-1.4.8最齐全的jar包"表明这是一个包含了XStream库所有功能的完整版本,版本号为1.4.8,适用于各种需求。 描述中提到"java对象转xml以及xml转java对象,操作很简单",这体现了XStream的核心特性。...

    android XMl 解析神奇xstream 二: 把对象转换成xml

    2. **对象与XML的映射**:在XStream中,每个Java类可以映射到一个XML元素,类的字段则映射到XML的属性或子元素。例如,有一个`Person`类: ```java public class Person { private String name; private int age...

    xstream-1.4.2.jar

    在压缩包子文件的文件名称列表中,我们只看到"xstream-1.4.2",这可能是XStream-1.4.2版本的源代码或者文档,或者是未打包的JAR文件。解压后,用户可以查看源代码,了解其内部实现,或者进行二次开发。 深入理解...

    xstream-1.4.3-sources.jar

    XStream 用法详解 XML 转换为 java 实体类 所需要的 xstream-1.4.3-sources.jar jar包 具体实现请参考 http://blog.csdn.net/morning99/article/details/28875159

    XStream1.4.16反序列化漏洞(CVE-2020-26258、CVE-2020-26259)

    XStream是一个常用的Java对象和XML相互转换的工具。近日XStream官方发布安全更新,修复了XStream 反序列化漏洞(CVE-2020-26258、CVE-2020-26259)。攻击者通过构造恶意的XML文档,可绕过XStream的黑名单,触发反...

Global site tag (gtag.js) - Google Analytics