2012-11-08 40 views
0

當我想使用xmlpullparser解析某些中文字符的xml文件,但結果顯示一些問號符號時,我對Android開發 有疑問。我不知道這件事。我在谷歌中找到了一些結果,這是通過添加utf-8字符串解決的。然而,似乎不是我的程序工作,任何人都可以幫我?:(如何在android中使用xmlpullparser解析中文字符

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(); 

     } 
    } 

回答

0

我可以看到你正在使用的pull解析器,但我認爲你聽錯了關於調用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

+0

我可以將其更改爲我的java代碼嗎? – user1494052

相關問題