`
LoveZhou
  • 浏览: 273011 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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阅读器
  • 大小: 59.4 KB
  • Rss.rar (934.4 KB)
  • 下载次数: 175
分享到:
评论
3 楼 LoveZhou 2011-02-16  
蓝月儿 写道
现在遇到编码的问题,手机模拟器有自己的默认编码方式吗

模拟器没有
2 楼 蓝月儿 2011-02-16  
现在遇到编码的问题,手机模拟器有自己的默认编码方式吗
1 楼 zhouxiaoli521 2011-01-19  
很不错的工具

相关推荐

    android 三种方式解析XML(DOM,Pull,Sax) 带文件编码识别

    本篇文章将深入探讨三种在Android中解析XML的方法:DOM(文档对象模型)、Pull(拉取解析器)和SAX(简单API for XML),并且会特别强调如何识别文件编码。 首先,DOM解析是将整个XML文件加载到内存中形成一个树形...

    Android解析XML使用WebView显示

    以上就是“Android解析XML并使用WebView显示”的主要技术点,开发者需要理解并掌握这些知识点,才能在实际项目中顺利实现这一功能。通过不断实践和学习,我们可以更好地理解和运用这些工具,提升应用的质量和用户...

    cocos2dX显示中文字符和解析XML文件[参照].pdf

    ### cocos2d-X显示中文字符和解析XML文件详解 #### 一、背景介绍 随着游戏开发的全球化趋势,越来越多的游戏需要支持多语言环境,其中中文显示成为了一个重要的需求。cocos2d-X作为一款跨平台的游戏开发框架,在...

    gb18030编码

    在实际开发中,处理GB18030编码的场景可能包括:从数据库读取GB18030编码的记录、网络传输GB18030编码的数据、解析GB18030编码的XML或JSON文件等。理解并熟练掌握GB18030编码的处理方式对于开发涉及中文字符的应用...

    读取xml转存sqlite

    - SQLite数据库默认支持UTF-8编码,但如果你的XML文件使用了其他编码,比如GBK,那么在插入数据前,需要先将数据转换为UTF-8。 - 如果在Android Studio中操作SQLite,确保数据库文件的编码设置正确,避免因为IDE...

    读取xml转存sqlite(VS2010 ,VS2005)

    在Windows上,有时可能会遇到GBK编码的问题,这时需要进行编码转换。 通过以上步骤,你应该能够在VS2010或2005环境下,成功地读取XML文件,将其内容存储到SQLite数据库中,并解决可能出现的中文乱码问题。在实际...

    Win32 与 Android的编码统一问题1

    例如,一个Win32程序发送GBK编码的数据到Android设备,而Android程序假设数据是UTF-8编码,解析时就会出现问题。 2. 文件读写:在跨平台的文件系统操作中,如果文件编码不一致,读取或保存文件时可能也会产生乱码。...

    java字符编码解析.zip

    例如,读取GBK编码的文件时,应使用`new InputStreamReader(fileInputStream, "GBK")`。 3. **网络传输**:在网络通信中,如HTTP协议,需要明确指定编码。HTTP头中的`Content-Type`字段用于指定响应体的字符编码,...

    火山安卓编码转换案例.rar

    Java语言提供了`Charset`类来处理不同的字符编码,例如`Charset.forName("GBK")`用于创建GBK编码对象。 2. **InputStream与OutputStream的转换**:在读取文件或网络流时,我们通常使用`InputStreamReader`和`...

    android解决乱码

    乱码通常出现在两个场景:一是文件编码不一致,比如读取的文件是GBK编码,而程序默认使用的是UTF-8;二是字符集设置不当,例如网络请求返回的数据编码与解析时设定的编码不匹配。针对这两种情况,我们可以采取以下...

    获取网页的编码格式(含JAVA源码 )

    常见的网页编码格式有ASCII、ISO-8859-1、GB2312、GBK、Big5以及Unicode的实现UTF-8等。这些编码决定了字符如何在计算机中存储和显示,尤其是在处理非英文字符时显得尤为重要。 当我们需要从网页中获取其编码格式时...

    androd的iconv

    - 字符编码:字符编码是将字符与二进制数值之间建立映射关系的方式,常见的有ASCII、ISO-8859-1、GB2312、GBK、Big5、UTF-8等。每种编码都有其适用范围,例如ASCII主要针对英文,而UTF-8则支持Unicode,能表示世界...

    Txt阅读器源代码

    GBK是中国大陆的汉字编码标准,它扩展了GB2312,包含了更多的汉字和其他字符。UTF-8则是一种变长的Unicode编码,能表示所有Unicode字符,包括GBK中的所有字符。在设计这个阅读器时,开发者考虑到了跨地区、跨平台的...

    Android 跑马灯

    2. **TextView属性**:如果只是简单的需求,可以直接在XML布局文件中使用`TextView`,并设置`android:singleLine="true"`和`android:ellipsize="marquee"`,让文字自动滚动。但这种方法的可定制性较差,不能实现复杂...

    maven-javadoc-plugin 中文 注释 API 解决乱码 pom xml

    在`pom.xml`文件中,通过修改`maven-javadoc-plugin`插件的相关配置来指定编码格式为GBK或UTF-8。 ```xml <groupId>org.apache.maven.plugins <artifactId>maven-javadoc-plugin <version>3.3.1 ...

    Android文本阅读器源代码

    5. **格式支持**:为了支持多种文本格式,源代码可能包含了对不同编码(如UTF-8、GBK)的支持,以及可能的Markdown或HTML解析。 6. **权限管理**:在Android 6.0及以上版本,应用需要动态请求权限,如读取存储权限...

Global site tag (gtag.js) - Google Analytics