0%

C#下载网页源码 解决乱码

在网络程序开发中,经常要与网页源码打交道,因为与服务器交互,直接使用HTTP协议是最简单的。下面的方法解决了在下载UTF8编码的源码时乱码的问题。

        private void button1_Click(object sender, RoutedEventArgs e)
        {
            WebClient webClient = new WebClient();
            webClient.DownloadDataCompleted += new DownloadDataCompletedEventHandler(webClient_DownloadDataCompleted);
            //添加下载完成事件处理器,在异步数据下载完成时触发
            webClient.DownloadDataAsync(new Uri("http://www.pocketdigi.com"));
            //异步下载,得到的是byte数组,不会卡UI
            //如果用DownloadString方法,在目标页面是UTF-8编码时会乱码,而且即使用Encoding类转换,也会丢失字符
        }
        private void webClient_DownloadDataCompleted(Object sender, DownloadDataCompletedEventArgs e)
        {
            //异步下载完成时触发
            String html = Encoding.UTF8.GetString(e.Result);
            //使用utf8编码转换成String
            textBox1.Text = html;
            //显示在 TextBox上
        }