首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XmlPullParser查看特殊字母字符

问XmlPullParser查看特殊字母字符
EN

Stack Overflow用户
提问于 2014-02-21 13:09:32
回答 1查看 301关注 0票数 0

我已经通过XmlPullParser完成了XML解析,在我将特殊字符添加到xml文件(如š,č,ř,ž等)之前,它工作正常。它将字符替换为"?“签名。有什么办法能摆脱它吗?

下面是我的Xml解析器类:

代码语言:javascript
复制
public class ClubsXmlPullParser {

    static final String CLUB = "club";
    static final String NAME = "name";
    static final String ABOUT = "about";
    static final String STADIUM = "stadium";
    static final String LOGO = "logo";
    static final String MOREABOUT = "moreAbout";

    public static List<LeagueClub> getItemsFromFile(Context ctx) {


        List<LeagueClub> clubs;
        clubs = new ArrayList<LeagueClub>();


        LeagueClub curItem = null;

        String curText = "";

        try {

            XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
            XmlPullParser xpp = factory.newPullParser();


            FileInputStream fis = ctx.openFileInput("clubs.xml");
            BufferedReader reader = new BufferedReader(new InputStreamReader(fis));


            xpp.setInput(reader);


            int eventType = xpp.getEventType();


            while (eventType != XmlPullParser.END_DOCUMENT) {

                String tagname = xpp.getName();


                switch (eventType) {
                case XmlPullParser.START_TAG:
                    if (tagname.equalsIgnoreCase(CLUB)) {
                        curItem = new LeagueClub();
                    }

                    break;

                case XmlPullParser.TEXT:

                    curText = xpp.getText();
                    break;

                case XmlPullParser.END_TAG:
                    if (tagname.equalsIgnoreCase(CLUB)) {

                        clubs.add(curItem);
                    } else if (tagname.equalsIgnoreCase(NAME)) {

                        curItem.setName(curText);
                    } else if (tagname.equalsIgnoreCase(ABOUT)) {

                        curItem.setAbout(curText);
                    } else if (tagname.equalsIgnoreCase(STADIUM)) {

                        curItem.setStadium(curText);
                    } else if (tagname.equalsIgnoreCase(LOGO)) {

                        curItem.setLogo(curText);
                    } else if (tagname.equalsIgnoreCase(MOREABOUT)) {

                        curItem.setName(curText);
                    } 



                    break;

                default:
                    break;
                }

                eventType = xpp.next();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }


        return clubs;
    }

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-24 14:14:29

假设您知道如何获得文件的编码,则可以使用setInput - setInput(InputStream inputStream, String inputEncoding)的替代版本。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21935387

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档