如何写出优雅的代码?

everything is null
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

如何用C#读取GBK编码的XML文件?

Posted on 2007-01-17 15:36  灰色  阅读(3453)  评论(0)    收藏  举报
今天在工作中要读取一个GBK的XML文件,GB2312可以认为是GBK的子集,即GBK编码是在gb2312上扩展来的,由于XmlTextReader不支持GBK,因此我用GB2312代替。再有,因为XmlTextReader的Encoding属性只读,所以只能通过StreamReader读取。下面是示例代码:

    HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.XXX.com/XXX.xml");
    //声明一个HttpWebRequest请求
    request.Timeout = 30000;
    //设置连接超时时间
    request.Headers.Set("Pragma", "no-cache");
    HttpWebResponse response = (HttpWebResponse)request.GetResponse();
    Stream streamReceive = response.GetResponseStream();
    Encoding encoding = Encoding.GetEncoding("GB2312");
    StreamReader streamReader = new StreamReader(streamReceive, encoding);
    System.Xml.XmlTextReader reader=new XmlTextReader(streamReader);
    ds.ReadXml(reader);