編輯:初級開發
通過網上搜索,最終找到了解決辦法:
1.就是先判斷URL資源上的XML文件的編碼方式
2.然後通過InputStreamReader 設定好編碼,然後將InputStreamReader通過InputSource的構造方法傳給InputSource
3.sax解析InputSource資源時,就會按照指定的編碼方式解析
1.判斷url資源上的XML文件編碼方式,需要通過第三方的jar文件
//得到探測器代理對象
CodepageDetectorProxy detector = CodepageDetectorProxy.getInstance();
//向代理對象添加探測器
detector.add(JChardetFacade.getInstance());
//得到編碼字符集對象
Charset charset = detector.detectCodepage(url);
//得到編碼名稱
String encodingName = charset.name();
2.通過InputStreamReader對象設定解析時的編碼
InputSource inputSource=null;
InputStream stream = null;
//如果是GBK編碼
if("GBK".equals(EncodingUtil.checkEncoding(url))){
stream = url.openStream();
//通過InputStreamReader設定編碼方式
InputStreamReader streamReader = new InputStreamReader(stream,"GBK");
inputSource = new InputSource(streamReader);
}else{
//是utf-8編碼
inputSource = new InputSource(url.openStream());
inputSource.setEncoding("UTF-8");
}
3.使用sax解析InputSource對象
ChinaNews chinaNews = SAXRssService.readRssXML(inputSource);
newsItems=chinaNews.getNewsItems();
通過以上三步就可以解析gbk或者gb2312編碼的XML文件,將網絡上的rss資源文件解析後,用ListVIEw顯示出來,就成了一個簡單的rss閱讀器
接上,其實BnMediaPlayerService->onTransact函數的結構也很簡單,就是switch...case...接收不同的請求執行不同的代碼調用
Google近期開始打擊盜版Android軟件,為開發者提供了 License Verification Library (LVL) 方式來防止Android軟件被盜版
隨著Android設備的普及為了讓更多的人參與Android軟件開發,這裡Google官方提供了一個開發工具App Inventor可以讓用戶無需編寫代碼也能生成自己的
前言關鍵字: DigitalClock date formatandroid的DigitalClock並沒有設置輸出格式的屬性或方法,但是可以通過繼承重寫來實現,見正文