代码为:
try
{
string Url ="http://cn.search.yahoo.com/search?p=测试";
WebRequest myReq=WebRequest.Create(Url);
WebResponse myRes=myReq.GetResponse();
//Stream resStream=myRes.GetResponseStream(); //返回信息
Stream resStream = myRes.GetResponseStream();
StreamReader sr = new StreamReader(resStream, System.Text.Encoding.GetEncoding("gb2312"));
String ResponseText = sr.ReadToEnd();
//Response.write(ResponseText);直接打印至网页,显示为乱码 resStream.Close();
sr.Close();
//写到文件里则正常,但有时也显示乱码
try
{
string SfontingFilePath = Request.PhysicalApplicationPath; if (System.IO.File.Exists(SfontingFilePath + "Content.html"))
System.IO.File.Delete(SfontingFilePath + "Content.html"); System.IO.StreamWriter sw = new System.IO.StreamWriter(SfontingFilePath + "YahooContent.html", true, System.Text.Encoding.GetEncoding("gb2312"));
sw.WriteLine(ResponseText);
sw.Close();
} catch (Exception fex) {
Response.Write(fex.ToString());
}
}
catch (Exception ex)
{
Response.Write(ex.ToString());
}
try
{
string Url ="http://cn.search.yahoo.com/search?p=测试";
WebRequest myReq=WebRequest.Create(Url);
WebResponse myRes=myReq.GetResponse();
//Stream resStream=myRes.GetResponseStream(); //返回信息
Stream resStream = myRes.GetResponseStream();
StreamReader sr = new StreamReader(resStream, System.Text.Encoding.GetEncoding("gb2312"));
String ResponseText = sr.ReadToEnd();
//Response.write(ResponseText);直接打印至网页,显示为乱码 resStream.Close();
sr.Close();
//写到文件里则正常,但有时也显示乱码
try
{
string SfontingFilePath = Request.PhysicalApplicationPath; if (System.IO.File.Exists(SfontingFilePath + "Content.html"))
System.IO.File.Delete(SfontingFilePath + "Content.html"); System.IO.StreamWriter sw = new System.IO.StreamWriter(SfontingFilePath + "YahooContent.html", true, System.Text.Encoding.GetEncoding("gb2312"));
sw.WriteLine(ResponseText);
sw.Close();
} catch (Exception fex) {
Response.Write(fex.ToString());
}
}
catch (Exception ex)
{
Response.Write(ex.ToString());
}
private string GetChartset(string url) { string html = getHTML(url,Encoding.ASCII.EncodingName); Regex reg_charset = new Regex(@"charset\b\s*=\s*(?<charset>[^""]*)"); string enconding = null; if (reg_charset.IsMatch(html)) { enconding = reg_charset.Match(html).Groups["charset"].Value; Console.WriteLine("charset:{0}",enconding); } else { enconding = Encoding.Default.EncodingName; } return enconding; } private string getHTML(string url, string encodingName) { try { WebRequest webRequest = WebRequest.Create(url); WebResponse webResponse = webRequest.GetResponse(); Stream stream = webResponse.GetResponseStream(); StreamReader sr = new StreamReader(stream, Encoding.GetEncoding(encodingName)); string html = sr.ReadToEnd(); return html; } catch (UriFormatException ex) { Console.WriteLine(ex.Message); return null; } catch (WebException ex) { Console.WriteLine(ex.Message); return null; } } private string Html(string Url) { string strResult = ""; try { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Stream streamReceive = response.GetResponseStream(); Encoding encoding = Encoding.GetEncoding(GetChartset(Url)); StreamReader streamReader = new StreamReader(streamReceive, encoding); strResult = streamReader.ReadToEnd(); } catch (Exception ex) { HttpContext.Current.Response.Write(ex.ToString()); } return strResult; } protected void Button1_Click(object sender, EventArgs e) { Response.Write(Html(TextBox1.Text)); }
这个吧?试一下