Как разобрать китайский иероглиф в Android с помощью xmlpullparser

У меня есть вопросы о разработке Android, когда я хочу проанализировать файлы xml с некоторым китайским символом, используя xmlpullparser, но результат показывает некоторые символы вопросительного знака. Я понятия не имею об этом. Я нашел некоторые результаты в Google, которые решаются путем добавления строки utf-8. Однако, похоже, это не работает для моей программы, может ли кто-нибудь мне помочь?? :(

protected ArrayList<ExerciseList> doInBackground(String... urls) {
        ArrayList<ExerciseList> exercises =null;
                try
                {
                    URL url = new URL("http://.../viewexercise_test.xml");
                    ExerciseList_parser exerciselist_parser = new ExerciseList_parser();
                    InputStream is = url.openStream();
                    Reader reader = new InputStreamReader(is,"UTF-8");

                    exerciselist_parser.parse(is);
                    exercises = exerciselist_parser.getExercise();
                }
                catch(Exception e)
                {
                    System.out.print(e);
                }

        return exercises;

     }

Ниже приведен код парсера

public void parse(InputStream in) throws XmlPullParserException, IOException {
        try {
            XmlPullParser parser = Xml.newPullParser();
            parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, false);
            parser.setInput(in, "utf-8");
            parser.nextTag();
            readFeed(parser);

        } finally {
            in.close();

        }
    }

person user1494052    schedule 08.11.2012    source источник


Ответы (1)


Я вижу, что вы используете Pull Parser, но я думаю, что вы ошиблись при вызове utf

Ну, это мой код, использующий DOM, но логика все еще там

HttpResponse response = client.execute(request);
... // probably some other code to check for HTTP response status code
HttpEntity responseEntity = response.getEntity();
String xml = EntityUtils.toString(responseEntity, HTTP.UTF_8);

Вы уверены, что это utf-8, и пробовали ли вы URLDecoder.decode?

person Androyds    schedule 08.11.2012