龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > asp.net编程 >

ASP.NET中HttpWebRequest抓取网页编码问题

时间:2009-12-21 11:47来源:未知 作者:admin 点击:
分享到:
在用HttpWebRequest抓取信息的时候,比如说抓去百度的信息, 那么代码如下: string url = string .Format( " http://www.baidu.com/s?wd={0} " ,HttpUtility.UrlEncode( " 电脑 " )); 这个时候,系统默认的编码格式

在用HttpWebRequest抓取信息的时候,比如说抓去百度的信息,

那么代码如下:

string url = string.Format( "http://www.baidu.com/s?wd={0}",HttpUtility.UrlEncode("电脑"));

 

这个时候,系统默认的编码格式是UTF8,那么其发送到浏览器的请求是:

http://www.baidu.com/s?wd=%e5%a4%a9%e6%9%c%ba

如果使用

string url = string.Format( "http://www.baidu.com/s?wd={0}",HttpUtility.UrlEncode("电脑",Encoding.Default));

那么,当前编码格式一般是GB2312,那么发送到浏览器请求的是:

http://www.baidu.com/s?wd=%cc%ec%bb%fa

这两个请求的显示内容是不一样的,因为百度所采取的编码格式是gb2312,所以采用后一种方式才能获取到正确的结果。

因此,在做这种抓取的请求的时候,一定要请求的数据必须与服务器的编码格式一致,否则将不能返回正确的数据。

精彩图集

赞助商链接