Android理会gbk、gb2312编码的xml文件
阅读次Android 支持三种理会xml文件的方法,dom,sax,pull,我用的较量多的是sax理会,但发明sax默认只理会utf-8编码的xml文件;
通过网上搜索,最终找到了办理步伐:
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阅读器 源码下载