Android:RSS 解析在特殊字符处停止

标签 android parsing rss special-characters

我搜索了很多但没有找到解决为什么我的 rss 阅读器停在像 æ ø å ' 等特殊字符处的解决方案。 阅读器阅读提要,直到它遇到一个特殊字符 - 然后它停止阅读该元素并继续阅读下一个。 所以当我在我的应用程序中显示新闻时,我的文本在特殊字符处被截断,这非常烦人! 当然它与编码有关,但我只是不知道如何处理我的代码。

此代码适用于其他提要,如 http://www.fyens.dk/rss/sport这是 iso-8859-1 编码。使用此提要,它可以毫无问题地显示特殊字符。但是如果我尝试像 http://ob.dk/forum/rss.aspx?ForumID=3&Mode=0 这样的提要这是 UTF-8 问题发生。

关于如何解决这个问题有什么建议吗?

    try {
        //open an URL connection make GET to the server and 
        //take xml RSS data
        URL url = new URL("http://ob.dk/forum/rss.aspx?ForumID=3&Mode=0");
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();

        if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) {
            InputStream is = conn.getInputStream();

            //DocumentBuilderFactory, DocumentBuilder are used for 
            //xml parsing
            DocumentBuilderFactory dbf = DocumentBuilderFactory
                    .newInstance();
            DocumentBuilder db = dbf.newDocumentBuilder();



            //using db (Document Builder) parse xml data and assign
            //it to Element
            Document document = db.parse(is);
            Element element = document.getDocumentElement();

            //take rss nodes to NodeList
            NodeList nodeList = element.getElementsByTagName("item");

            if (nodeList.getLength() > 0) {
                for (int i = 0; i < nodeList.getLength(); i++) {

                    //take each entry (corresponds to <item></item> tags in 
                    //xml data

                    Element entry = (Element) nodeList.item(i);

                    Element _titleE = (Element) entry.getElementsByTagName(
                            "title").item(0);
                    Element _descriptionE = (Element) entry
                            .getElementsByTagName("description").item(0);
                    Element _pubDateE = (Element) entry
                            .getElementsByTagName("pubDate").item(0);
                    Element _linkE = (Element) entry.getElementsByTagName(
                            "link").item(0);

                    String _title = _titleE.getFirstChild().getNodeValue();
                    String _description = _descriptionE.getFirstChild().getNodeValue();
                    Date _pubDate = new Date(_pubDateE.getFirstChild().getNodeValue());
                    String _link = _linkE.getFirstChild().getNodeValue();

                    int time = _pubDate.getHours()-2;

                    _pubDate.setHours(time);

                            RssItem rssItem = new RssItem("OB.dk: "+_title, _description,
                                    _pubDate, "http://www.google.com/gwt/x?u="+_link);

                            rssItems.add(rssItem);

                    }



            }

        }
    } catch (Exception e) {
        e.printStackTrace();
    }

最佳答案

关于Android:RSS 解析在特殊字符处停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7986957/

相关文章:

android - Android 应用程序在通过 Android Studio 安装时可以正常工作,但在通过 Google Play 安装和打开时会显示一些设置页面

android - Google Plus 登录 Android?

xml - 解析动态 XML

java - 尽管设置了用户代理,但来自 Java 应用程序(但不是 Web 浏览器)的 HTTP 403

php - 如何阅读 RSS 形式的邮件列表

android - 在 Android 中解析 RSS 提要

android - 以编程方式设置 ListView 项的背景颜色

java - 通过打开新 Activity 清除后退堆栈

parsing - Python3解析器生成器

php - 解析短语和关键字的搜索字符串