0

ni utf 形式のデータを提供する Web リソースを解析しようとしましたが、解析を開始すると次のようになります。

12-08 11:30:44.097: E/Reader(670): org.xmlpull.v1.XmlPullParserException: Error parsing document. (position:line -1, column -1) caused by: org.apache.harmony.xml.ExpatParser$ParseException: At line 10, column 15: not well-formed (invalid token)
12-08 11:30:44.097: E/Reader(670):  at org.apache.harmony.xml.ExpatPullParser$ByteDocument.flush(ExpatPullParser.java:958)
12-08 11:30:44.097: E/Reader(670):  at org.apache.harmony.xml.ExpatPullParser$Document.pump(ExpatPullParser.java:769)
12-08 11:30:44.097: E/Reader(670):  at org.apache.harmony.xml.ExpatPullParser$Document.dequeue(ExpatPullParser.java:813)
12-08 11:30:44.097: E/Reader(670):  at org.apache.harmony.xml.ExpatPullParser.next(ExpatPullParser.java:302)
12-08 11:30:44.097: E/Reader(670):  at org.apache.harmony.xml.ExpatPullParser.nextTag(ExpatPullParser.java:338)
12-08 11:30:44.097: E/Reader(670):  at com.home.network.RssParser.parseSax(RssParser.java:78)

パーサーで UTF-8 パラメータを設定しましたが、役に立ちません:

        List<Feed> feeds = new ArrayList<Feed>();
try {
    XmlPullParser parser = Xml.newPullParser();
    parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, false);
    parser.setInput(is, "UTF-8");
//          parser.setFeature(XmlPullParser., state)
    parser.nextTag();
    feeds = readFeed(parser);
} catch (XmlPullParserException e) {
    Log.e("Reader", "Parse exception", e);
} catch (IOException e) {
    Log.e("Reader", "Parse exception", e);
} finally {
4

1 に答える 1

0

null を 2 番目のパラメータとして転送してみてください:

parser.setInput(is, null);

この場合、パーサーはコンテンツのエンコーディングを自動検出しようとします。

于 2012-12-08T10:15:52.877 に答える