Elizabeths 2016-07-26 09:08 采纳率: 80%
浏览 1007
已采纳

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

图片说明

点击这个按钮,我这个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条回答

  • Go 旅城通票 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)));
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(6条)

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器