string url = "http://music.yisou.com/search.html?pid=yisou&p=%B0%AE%C4%E3&mimetype=mp3&source=yisou_music_result_topsearch";
textBox.Text =cjl.Web.WebSpider.GetRequestString(url, 8000, 0);
中文显示为乱码?为什么?
public static string GetRequestString(string requestUrl,int timeout,int enterType)
{
string strResult;
try 

HttpWebRequest myReq = (HttpWebRequest)HttpWebRequest.Create(requestUrl) ; 
myReq.Timeout = timeout;
HttpWebResponse HttpWResp = (HttpWebResponse)myReq.GetResponse();
Stream myStream = HttpWResp.GetResponseStream () ;
StreamReader sr = new StreamReader(myStream , Encoding.Default);
StringBuilder strBuilder = new StringBuilder(); while (-1 != sr.Peek())
{
strBuilder.Append(sr.ReadLine());
if(enterType==1)
{
strBuilder.Append("\r\n");
}
}
strResult = strBuilder.ToString();
}
catch(Exception exp)
{
strResult = "请求错误:" + exp.Message;
}
return strResult ; 
}

解决方案 »

  1.   

    StreamReader sr = new StreamReader(myStream , Encoding.Default);
     改成:StreamReader sr = new StreamReader(myStream , System.Text.Encoding.GetEncoding("gb2312"));试试
      

  2.   

    默认是UTF-8编码
    你换成GB2312看看
      

  3.   

    这应该是编码格式的问题,选择正确的编码格式就好了,如果还没有完全解决,看是不是该网站对HTML进行了编码,可以用HttpUtility.UrlDecode()的方法进行解码就可以了
      

  4.   

    (HttpWebResponse)myReq.GetResponse();这个方法返回的是2进制的数据流
    应该用byte[]来存储吧然后转换成字符串类型