如何使用xmlpullparser解析android中的汉字
Posted
技术标签:
【中文标题】如何使用xmlpullparser解析android中的汉字【英文标题】:How to parse Chinese character in android using xmlpullparser 【发布时间】:2012-10-28 07:52:38 【问题描述】:我有关于 android 开发的问题 当我想使用 xmlpullparser 解析带有一些中文字符的 xml 文件但结果显示一些问号符号时。我对此一无所知。我在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();
【问题讨论】:
【参考方案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
【讨论】:
以上是关于如何使用xmlpullparser解析android中的汉字的主要内容,如果未能解决你的问题,请参考以下文章
Android Dom和XmlPullParse解析XML文件
XmlPullParser:如何找出 START_TAG 是啥?
Android:DOM vs SAX vs XMLPullParser 解析?