掌间无限—Android 解析gbk、gb2312编码的xml文件
来源:互联网 发布:opencms访问数据库 编辑:程序博客网 时间:2024/05/16 04:35
工作开发中,我们遇到的XML文件大多数都是UTF—8格式的文件,可一旦遇到不是UTF—8的XML文件,我们该怎么去解析?android默认的有三种解决方式:,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文件。
- 掌间无限—Android 解析gbk、gb2312编码的xml文件
- android 解析gbk编码格式的网络xml文件
- Golang——解析GBK编码XML文件
- 关于gb2312编码的xml解析
- 汉字编码解析 GBK编码 GB2312等
- python解析gbk编码的xml
- GB2312、GBK、UTF-8编码的区别
- 网页编码utf8 gb2312 gbk的区别
- terminal 的显示编码为 utf8 时用 vim 打开 gb2312/gbk/gb18030 编码的文件
- 如何判断一个文件的编码格式是gb2312还是gbk等
- 使ubuntu正常显示GB2312、GBK编码文件
- 使ubuntu正常显示GB2312、GBK编码文件
- 使ubuntu正常显示GB2312、GBK编码文件
- 文件编码UNICODE、UTF-8、ANSI、ASCII、GB2312、GBK详解
- GB2312 GBK GB18030编码介绍
- GBK、GB2312等编码问题
- GBK、GB2312与UTF编码
- GBK(GB2312)向UTF-8的编码转换
- 手机翻转静音
- 内网嗅探自我保护用到的批处理
- editplus注册码
- PHP在各种HTTP服务器上运行模式分析
- 暑期学习过程中的几个要点(贴上来有空复习复习)
- 掌间无限—Android 解析gbk、gb2312编码的xml文件
- OnPaint()函数的作用原理
- 根据控件ID得到句柄
- J2EE系统优化的几点体会
- 在Windows下sqlplus完全正常,可是到Linux下,sqlplus中文显示就出问题了,总是显示“??”,这个问题又怎么解决呢?
- JAVA文件操作
- Delphi 菜单的应用(系统菜单添加一项、主菜单增加历史记录、弹出菜单的动态合并、菜单中画图、显示状态)
- 一个入职小半年的新人的感悟
- devexpress 控件不见了