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阅读器
- 大小: 59.4 KB
分享到:
相关推荐
GBK编码,是对GB2312编码的扩展,因此完全兼容GB2312-80标准。GBK编码依然采用双字节编码方案,其编码范围:8140-FEFE,剔除xx7F码位,共23940个码位。共收录汉字和图形符号21886个,其中汉字(包括部首和构件)...
GB2312简体中文编码表
纯js对字符串进行gb2312编码解码,如“中国”编码后成为:“%D6%D0%B9%FA”,很好用的
GBK、GB2312等与UTF8之间都必须通过Unicode编码才能相互转换
GB2312编码与utf-8编码的字符串的转换,主要使用windows api函数MultiByteToWideChar和WideCharToMultiByte,代码简洁,经测试可用
C#写的 GBK GB2312 UTF-8转换 功能简单,仅供学习
GBK GB2312 Unicode 编码 乱码 GB18030编码研究以及GBK,GB2312,GB18030与Unicode的映射,乱码解决 计算机,毫无疑问是一部机器,在最初我们接触计算机时或者接收计算机教育时,我们就知道:计算机能识别的只有010101...
GB2312简体中文编码表,GBK對應UNICODE的,完整轉換表,GB2312的編碼方案
GBK.enc GB2312.enc XML读取时编码格式 GBK.enc GB2312.enc XML读取时编码格式
GBK GB2312转UTF-8工具.可以批量地将文件编码进行转换.
GB2312,GBK,UTF8,UNICOE编码转换工具
记事本的各种编码转换 GBK GB2312 UNICODE UTF8之间相互转换,单个文件批量文件转换都可,无需安装,解压即可使用
gb2312汉字编码
例:中 D6D0 国 B9FA http://www.mytju.com/classcode/tools/encode_gb2312.asp 开发小程序蓝牙时,发送中文,硬件蓝牙要求gbk2312转码,我费了九牛二虎之力,终于找到简单有效的方法
NULL 博文链接:https://winter8.iteye.com/blog/1036321
gb2312 gbk 编码表 包括 gb码表 gbk码表 gbk纯字符集 以及一份汉字编码的介绍
关于GBK、GB2312、UTF8,按照GBK18030、GBK、GB2312的顺序,3种编码是向下兼容,同一个汉字在三个编码方案中是相同的编码。
GB2312字符集 作用:国家简体中文字符集,兼容ASCII。 位数:使用2个字节表示,能表示7445个符号,包括6763个汉字,几乎覆盖所有高频率汉字。 范围:高字节从A1到F7, 低字节从A1到FE。将高字节和低字节分别加上0XA0...