我从XML文件里面取出中文字,怎么让他显示不会出现乱码呢?

解决方案 »

  1.   

    EntityUtils.toString(XML内容,"UTF-8");
      

  2.   

    String xml=downloadXML("http://110.84.34.150:8080/mp3/resources.xml");
    String xml2=EntityUtils.toString(xml,"UTF-8");
    为什么不能这样子用呢
      

  3.   

    你把downloadXML这个方法的源码发上来帮你修改吧。
      

  4.   

    private void updateListView(){
    //用户点击了更新列表按钮
    //下载包含所有Mp3基本信息的xml文件
    String xml=downloadXML("http://110.84.34.150:8080/mp3/resources.xml");
    //对XML文件进行解析,并将解析的结果放置到Mp3Info对象当中,最后将这些Mp3Info对象放置到list当中。
    mp3Infos=parse(xml);
    SimpleAdapter simpleAdapter=buildSimpleAdapter(mp3Infos);
    //将这个SimpleAdapter对象设置到ListActivity当中
    setListAdapter(simpleAdapter);
    }
    private SimpleAdapter buildSimpleAdapter(List<Mp3Info> mp3Infos){
    //生成一个list对象,并按照SimpleAdapter的标准,将mp3Infos当中的数据添加到list当中去。
    List<HashMap<String,String>> list= new ArrayList<HashMap<String,String>>();
    for (Iterator iterator = mp3Infos.iterator(); iterator.hasNext();) {
    HashMap<String,String> map=new HashMap<String, String>();
    Mp3Info mp3Info = (Mp3Info) iterator.next();
    map.put("mp3_name",mp3Info.getMp3Name());
    map.put("mp3_size",mp3Info.getMp3Size());
    list.add(map);
    }
    //创建一个SimpleAdapter对象
    SimpleAdapter simpleAdapter=new SimpleAdapter(this, list, R.layout.mp3info_item, new String[]{"mp3_name","mp3_size"}, new int[]{R.id.mp3_name,R.id.mp3_size});
    return simpleAdapter;
    }
        private String downloadXML(String urlStr){
         HttpDownloader httpDownloader=new HttpDownloader();
         String result=httpDownloader.download(urlStr);
         return result;
        }
        //解析XML文件
        private List<Mp3Info> parse(String xmlStr){
         SAXParserFactory saxPFactory=SAXParserFactory.newInstance();
    List<Mp3Info> infos=new ArrayList<Mp3Info>();
         try{
         XMLReader xmlReader=saxPFactory.newSAXParser().getXMLReader();
         Mp3ListContentHandl mp3ListContentHandl=new Mp3ListContentHandl(infos);
         xmlReader.setContentHandler(mp3ListContentHandl);
         xmlReader .parse(new InputSource(new StringReader(xmlStr)));
         for (Iterator iterator = infos.iterator(); iterator.hasNext();) {
    Mp3Info mp3Info = (Mp3Info) iterator.next();
    System.out.println(mp3Info);
    }
         }catch(Exception e){
         e.printStackTrace();
         }
         return infos;
        }
      

  5.   

    private void updateListView(){
    //用户点击了更新列表按钮
    //下载包含所有Mp3基本信息的xml文件
    String xml=downloadXML("http://110.84.34.150:8080/mp3/resources.xml");
    //对XML文件进行解析,并将解析的结果放置到Mp3Info对象当中,最后将这些Mp3Info对象放置到list当中。
    mp3Infos=parse(xml);
    SimpleAdapter simpleAdapter=buildSimpleAdapter(mp3Infos);
    //将这个SimpleAdapter对象设置到ListActivity当中
    setListAdapter(simpleAdapter);
    }
    private SimpleAdapter buildSimpleAdapter(List<Mp3Info> mp3Infos){
    //生成一个list对象,并按照SimpleAdapter的标准,将mp3Infos当中的数据添加到list当中去。
    List<HashMap<String,String>> list= new ArrayList<HashMap<String,String>>();
    for (Iterator iterator = mp3Infos.iterator(); iterator.hasNext();) {
    HashMap<String,String> map=new HashMap<String, String>();
    Mp3Info mp3Info = (Mp3Info) iterator.next();
    map.put("mp3_name",mp3Info.getMp3Name());
    map.put("mp3_size",mp3Info.getMp3Size());
    list.add(map);
    }
    //创建一个SimpleAdapter对象
    SimpleAdapter simpleAdapter=new SimpleAdapter(this, list, R.layout.mp3info_item, new String[]{"mp3_name","mp3_size"}, new int[]{R.id.mp3_name,R.id.mp3_size});
    return simpleAdapter;
    }
        private String downloadXML(String urlStr){
         HttpDownloader httpDownloader=new HttpDownloader();
         String result=httpDownloader.download(urlStr);
         return result;
        }
        //解析XML文件
        private List<Mp3Info> parse(String xmlStr){
         SAXParserFactory saxPFactory=SAXParserFactory.newInstance();
    List<Mp3Info> infos=new ArrayList<Mp3Info>();
         try{
         XMLReader xmlReader=saxPFactory.newSAXParser().getXMLReader();
         Mp3ListContentHandl mp3ListContentHandl=new Mp3ListContentHandl(infos);
         xmlReader.setContentHandler(mp3ListContentHandl);
         xmlReader .parse(new InputSource(new StringReader(xmlStr)));
         for (Iterator iterator = infos.iterator(); iterator.hasNext();) {
    Mp3Info mp3Info = (Mp3Info) iterator.next();
    System.out.println(mp3Info);
    }
         }catch(Exception e){
         e.printStackTrace();
         }
         return infos;
        }
      

  6.   


    String xml=downloadXML("http://110.84.34.150:8080/mp3/resources.xml");
    后面加上
    try {
    xml = new String (xml.getBytes("ISO-8859-1"),"GBK");
    } catch (UnsupportedEncodingException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    看看。
      

  7.   

    是不是这个获取歌曲名称乱码?
    map.put("mp3_name",mp3Info.getMp3Name());把这段换成:try {
    map.put("mp3_name",new String (mp3Info.getMp3Name().getBytes("ISO-8859-1"),"GBK"));
     } catch (UnsupportedEncodingException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
     }试试,这是乱码转换的一种方式,不一定能行。
      

  8.   

    还是转换不了
    这是我XML文件的开头<?xml version="1.0" encoding="ISO-8859-1"?>
      

  9.   

    改成UTF-8,我也试过了,还是乱码