Android上使用xstream遇到的坑

事情经过

Android项目中需要将一些配置属性移至服务器上,然后统一用xstream解析xml文件并反序列化成配置类,再交由业务逻辑进行调用,但是在实践的过程中发现,经由记事本更改的配置文件无法被xstream解析,最开始想到编码错误的问题,并且使用记事本的另存为将配置文件保存为[UTF-8]格式,重新试验后,问题依然存在。

com.thoughtworks.xstream.io.StreamException: :
   Unexpected token (position:TEXT @*:* in java.io.StringReader@**)

使用Android Studio IDE编辑的配置文件,能够正常被xstream解析.

一个很偶然的操作,EditPlus编辑的原始配置文件,能够被xstream解析,使用EditPlus打开无法被xstream解析的文件(记事本编辑过),发现编码格式是[UTF-8+BOM],莫名感动,原来是BOM格式搞的鬼

比较好的解决方法

就目前来看,因为带BOM格式的文件在xstream解析的过程中,内容首部会自动加上"\ufeff".因此屏蔽乱码的一个方法就是过滤掉这些字符串

String filterStr = String.replcaeAll("^\ufeff","").

推荐扩展阅读:
知乎上关于BOM的讨论
编码歪传——番外篇

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 原文地址 用java生成一个UTF-8文件(指定了utf-8格式了): 如果文件内容中没有中文内容,则生成的文件为...
    東方白阅读 3,122评论 0赞 0
  • 字符集和编码简介 在编程中常常可以见到各种字符集和编码,包括ASCII,MBCS,Unicode等字符集。确切的说...
    兰山小亭阅读 9,188评论 0赞 13
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 137,315评论 19赞 139
  • 公众号:吴小氓 01 离开大学校门已经有六年之久,回顾这六年,得出一个结论:一个人的今天是昨天各种总成的结果,...
    吴小氓阅读 547评论 0赞 0
  • 初见你 懵懵懂懂小小一只 转眼间 早已蜕变成了王子 看你年纪小小 情商智商都不低 看你手腕纤细 挥舞起来很有力 看...
    小辣狗阅读 263评论 0赞 1

友情链接更多精彩内容