开发者

Android XmlPullParser UTF-8 problem

I have an XML document built with

org.xmlpull.v1.XmlSerializer

This document contains following XML prolog

<?xml version='1.0' encoding='utf-8' standalone='yes' ?>

When I try to parse this document using

import org.xmlpull.v1.XmlPullParser;

with following configuration code

XmlPullParser pullParser = Xml.newPullParser();
pullParser.setInput(theInputStream, "utf-8");

I g开发者_StackOverflow社区et undecoded utf-8 strings when I call

String text = pullParser.getText();

So it seems that XmlPullParser in Android (I use 1.5) doesn't support utf-8. Did I miss something?

Thank you in advance.


Not sure if it matter but can you try two things

  1. Use UTF-8 instead of lower case

And

  1. Try using pullParser.setInput(theInputStream); and seeing if the pullparser can determine the encoding on it's own.


This question is old but I recently ran into the same issue using XMLPullParser. In my case, I was parsing a stream of UTF-8 encoded XML from an OkHttp ResponseBody. It was necessary for me to specify the input encoding charset for this to work. In case someone else lands here:

override fun convert(response: ResponseBody): ArchNewsFeed? {
        val encoding = Charsets.UTF_8.name()
        val factory = XmlPullParserFactory.newInstance()
        factory.isNamespaceAware = true;
        val parser = factory.newPullParser()
        parser.setInput(response.byteStream(), encoding)
        ...

    }
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜