在用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,所以采用后一种方式才能获取到正确的结果。
因此,在做这种抓取的请求的时候,一定要请求的数据必须与服务器的编码格式一致,否则将不能返回正确的数据。