HD908571842
Elizabeths
采纳率80%
2016-07-26 09:08 阅读 993
已采纳

用winform做的一个爬虫获取网站源码。url获取到的是乱码怎么弄?

5

图片说明

点击这个按钮,我这个responseText输出的网站源码,软件工程师都是乱码。
private void button1_Click(object sender, EventArgs e)
{
HttpWebRequest request = null;
HttpWebResponse response = null;
string url = "http://search.51job.com/jobsearch/search_result.php?fromJs=1&jobarea=000000%2C00&district=000000&funtype=0000&industrytype=00&issuedate=9&providesalary=99&keyword=%E8%BD%AF%E4%BB%B6%E5%B7%A5%E7%A8%8B%E5%B8%88&keywordtype=2&curr_page=1&lang=c&stype=2&postchannel=0000&workyear=99&cotype=99&degreefrom=99&jobterm=99&companysize=99&lonlat=0%2C0&radius=-1&ord_field=1&list_type=0&fromType=14&dibiaoid=0&confirmdate=9";
while (true)
{
//string formData = url.Substring(url.IndexOf('1') + 1);
byte[] requestBuffer = Encoding.UTF8.GetBytes(url);
request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = requestBuffer.Length;
request.KeepAlive = true;
request.Host = "search.51job.com";
request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36";
request.Referer = url;
using (Stream requestStream = request.GetRequestStream())
{
requestStream.Write(requestBuffer, 0, requestBuffer.Length);
requestStream.Close();
}
response = (HttpWebResponse)request.GetResponse();
using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("gb2312")))
{
string responseText = reader.ReadToEnd();
}
}
}

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

7条回答 默认 最新

  • 已采纳
    showbo GoCityPass新加坡曼谷通票 2016-07-26 09:14

    不是乱码,是中文被编码过了。你要还原为中文用

             Response.Write(HttpUtility.UrlDecode("%E8%BD%AF%E4%BB%B6%E5%B7%A5%E7%A8%8B%E5%B8%88", Encoding.GetEncoding(65001)));
    
    点赞 5 评论 复制链接分享
  • FiangAsDre GreenRookie 2016-07-26 09:09

    编码换成gbk返回前台,或着其他编码

    点赞 评论 复制链接分享
  • CODER_V 无道loading 2016-07-26 09:11

    这个网址可以打开,感觉不是乱码,后面?后面都是跟的参数。

    点赞 评论 复制链接分享
  • CODER_V 无道loading 2016-07-26 09:12

    不是乱码,后面?都是跟的参数。

    点赞 评论 复制链接分享
  • qq_35615136 Duo_La_Beata 2016-07-26 09:43

    赞同一楼,乱码应该是中文,一楼应该是给出了解决方案的

    点赞 评论 复制链接分享
  • parlmes parlmes 2016-07-26 10:11

    乱码什么样的?应该要用 HtmlDecode解码一下。

    点赞 评论 复制链接分享
  • zwx19925319 zwx19925319 2016-07-27 01:37

    浏览器默认采用encodeURI()对中文字符进行编码(我是这样认为的,并且只有Firefox和Chrome才自动对中文进行编码,IE不会),

    采用的字符集好像都是utf-8。

    在前台可以用decodeURI()进行解码,在后台可以用UrLDecoder.decode(str,"utf-8")进行解码。

    点赞 评论 复制链接分享

相关推荐