我创建一个WebService,在服务器端返回一个Dataset.GetXML()生成的XML字符串,客户端要将该字符串读取,重新生成DataSet,但是读取的时候遇见中文字符,程序就不能正常读取。
查询过资料后发现DataSet.GetXML()生成的XML是UTF-8的,而客户端本地读取只能支持GB2313类型的。
请问我如何读取XML?

解决方案 »

  1.   

    http://www.cnblogs.com/murky/archive/2006/07/06/443816.html
      

  2.   

    http://topic.csdn.net/t/20050516/10/4009672.html
      

  3.   

    好像都不行,最后本地都是
    <?xml version="1.0" encoding="utf-8" ?>
      

  4.   

    sorry,没有看清楚你的问题,转贴一个转换的例子
    //批量数据转换
      //其实就是将dataset的内容读出到xml文件,然后再输出
      public DataSet ISO8859_GB2312(DataSet ds)
      {
       string xml;
       xml = ds.GetXml();
       ds.Clear();
       //声明字符集
       System.Text.Encoding iso8859,gb2312;
       //iso8859
       iso8859    = System.Text.Encoding.GetEncoding("iso8859-1");
       //国标2312
       gb2312 = System.Text.Encoding.GetEncoding("gb2312");
       byte[] bt;
       bt = iso8859.GetBytes(xml);
       xml = gb2312.GetString(bt);
       ds.ReadXml(new System.IO.StringReader(xml));
       return ds;
      }
      

  5.   

    zhenpengka(小鸟笨笨) 你的写法只是在客户端处理了字符串。
    我试过了,发现只要encoding="utf-8" ,dataset就无法将它认成gb2313