Android上使用xstream遇到的坑

事情經(jīng)過

Android項目中需要將一些配置屬性移至服務(wù)器上,然后統(tǒng)一用xstream解析xml文件并反序列化成配置類,再交由業(yè)務(wù)邏輯進(jìn)行調(diào)用,但是在實(shí)踐的過程中發(fā)現(xiàn),經(jīng)由記事本更改的配置文件無法被xstream解析,最開始想到編碼錯誤的問題,并且使用記事本的另存為將配置文件保存為[UTF-8]格式,重新試驗后,問題依然存在。

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

使用Android Studio IDE編輯的配置文件,能夠正常被xstream解析.

一個很偶然的操作,EditPlus編輯的原始配置文件,能夠被xstream解析,使用EditPlus打開無法被xstream解析的文件(記事本編輯過),發(fā)現(xiàn)編碼格式是[UTF-8+BOM],莫名感動,原來是BOM格式搞的鬼

比較好的解決方法

就目前來看,因為帶BOM格式的文件在xstream解析的過程中,內(nèi)容首部會自動加上"\ufeff".因此屏蔽亂碼的一個方法就是過濾掉這些字符串

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

推薦擴(kuò)展閱讀:
知乎上關(guān)于BOM的討論
編碼歪傳——番外篇

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 原文地址 用java生成一個UTF-8文件(指定了utf-8格式了): 如果文件內(nèi)容中沒有中文內(nèi)容,則生成的文件為...
    東方白閱讀 3,078評論 0 0
  • 字符集和編碼簡介 在編程中常??梢砸姷礁鞣N字符集和編碼,包括ASCII,MBCS,Unicode等字符集。確切的說...
    蘭山小亭閱讀 9,077評論 0 13
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,534評論 19 139
  • 公眾號:吳小氓 01 離開大學(xué)校門已經(jīng)有六年之久,回顧這六年,得出一個結(jié)論:一個人的今天是昨天各種總成的結(jié)果,...
    吳小氓閱讀 503評論 0 0
  • 初見你 懵懵懂懂小小一只 轉(zhuǎn)眼間 早已蛻變成了王子 看你年紀(jì)小小 情商智商都不低 看你手腕纖細(xì) 揮舞起來很有力 看...
    小辣狗閱讀 253評論 0 1

友情鏈接更多精彩內(nèi)容