用以下程序去下载
http://www.footballs.cn/soccer/free310/
的网页,怎么换编码950,gb2312,big5都换过,也转来转去,下载下来都是乱码,如何解决?
首先解决问题的全给200分.            byte[] buf = new byte[38192];
            HttpWebRequest request = (HttpWebRequest)
            WebRequest.Create("http://www.footballs.cn/soccer/free310/");
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            Stream resStream = response.GetResponseStream();
            int count = resStream.Read(buf, 0, buf.Length);
            this.textBox1.Text =  Encoding.GetEncoding("gb2312").GetString(buf, 0, count);
            resStream.Close();   

解决方案 »

  1.   

    怎么是下载文件free310?这个文件原来是什么编码?你用浏览器能打开这个文件看到的是否也是乱码呢?
      

  2.   

    就是这个页面:http://www.footballs.cn/soccer/free310/
    可以用浏览器打开,没什么问题.
    WebRequest下载下来就是乱码了.上面那段代码怎么改才不会是乱码?
      

  3.   

    奇怪,response.ContentEncoding的值是"gzip"
      

  4.   

    HTTP压缩
    http://www.linkwww.com/article/view.asp?id=220
      

  5.   

    问题解决,原来还要解压缩,谢谢Cnapollo(旁痞) 的提示.
    相关解决方法:
    http://feralboy.com/log/archives/000420/
    http://www.codeproject.com/aspnet/CompressibleHTTP20.asp
      

  6.   

    ?
    以上是我运行的结果显示!
    如把网址改为别的网站,可以显示页面源代码,但不全。
    http://www.footballs.cn/soccer/free310其实为http://www.footballs.cn/soccer/free310/index.asp,无法看到其真正源代码
    所以具体编码格式就不得而知了。
      

  7.   

    using ICSharpCode.SharpZipLib.GZip;public static byte[] Compress(Stream Source)
            {
                Debug.Assert(null != Source);
                Source.Seek(0, SeekOrigin.Begin);
                MemoryStream objMem = new MemoryStream();
                GZipOutputStream objGzip = new GZipOutputStream(objMem);
                
                const int BUFFER_SIZE = 1024 * 10;
                byte[] arrBuffer = new byte[BUFFER_SIZE];
                int nGetedCount = 0;
                do
                {
                    nGetedCount = Source.Read(arrBuffer, 0, BUFFER_SIZE);
                    objGzip.Write(arrBuffer, 0, nGetedCount);
                } while(nGetedCount>0);
                objGzip.Finish();
                byte[] arrResult = objMem.ToArray();
                objGzip.Close();  //压缩完成后,输出流就会被关闭
                objGzip = null;
                objMem.Close();
                objMem = null;
                return arrResult;
            }or NET 2.0 里面有个 System.IO.Compression