还是编码,HttpWebRequest

在用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,所以采用后一种方式才能获取到正确的结果。

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

posted @ 2009-04-21 15:54  *王员外*  阅读(1663)  评论(6编辑  收藏  举报