我在程序中发送一个关键词到baidu搜索,返回数据生成一个html文档,可是把返回的数据写入html后再用浏览器打开全是乱码,但是直接在程序中用webBrowser打开这个链接却是正常的,请教如何才能生成正常的html文件。多谢!//调用百度搜索
string input = HttpUtility.UrlEncode("关键词", Encoding.GetEncoding("gb2312"));
string sUrl = "http://www.baidu.com/s?bs=" + input + "&f=8&wd=intitle%3A" + input + "+filetype%3Adoc";
WebRequest wrq = WebRequest.Create(sUrl);//把返回结果写入文件html.html,再用浏览器打开全是乱码
WebResponse wrs = wrq.GetResponse();
Stream strm = wrs.GetResponseStream();
StreamReader sr = new StreamReader(strm);
string line;
while ((line = sr.ReadLine()) != null)
{
StreamWriter swSaveFileList = File.AppendText("html.html");
swSaveFileList.WriteLine(line);
swSaveFileList.Flush();
swSaveFileList.Close();
}//直接用webBrowser控件打开sUrl链接是正常的
webBrowser1.Navigate(sUrl);
string input = HttpUtility.UrlEncode("关键词", Encoding.GetEncoding("gb2312"));
string sUrl = "http://www.baidu.com/s?bs=" + input + "&f=8&wd=intitle%3A" + input + "+filetype%3Adoc";
WebRequest wrq = WebRequest.Create(sUrl);//把返回结果写入文件html.html,再用浏览器打开全是乱码
WebResponse wrs = wrq.GetResponse();
Stream strm = wrs.GetResponseStream();
StreamReader sr = new StreamReader(strm);
string line;
while ((line = sr.ReadLine()) != null)
{
StreamWriter swSaveFileList = File.AppendText("html.html");
swSaveFileList.WriteLine(line);
swSaveFileList.Flush();
swSaveFileList.Close();
}//直接用webBrowser控件打开sUrl链接是正常的
webBrowser1.Navigate(sUrl);
byte[] bs = Encoding.ASCII.GetBytes(param);
HttpWebRequest req = (HttpWebRequest) HttpWebRequest.Create( "" ); req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
req.ContentLength = bs.Length;
using (Stream reqStream = req.GetRequestStream())
{}
中文
Encoding myEncoding = Encoding.GetEncoding("gb2312");
string param = HttpUtility.UrlEncode("", myEncoding);
byte[] postBytes = Encoding.ASCII.GetBytes(param);
StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("gb2312"));
outdata = myStreamReader.ReadToEnd();
StreamReader myStreamReader = new StreamReader(myResponseStream);
是一种乱码
StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("gb2312"));
结果和
StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.Default);
效果一样,是另外一种乱码。
服务器传回的流是否使用了gzip方法压缩:
System.IO.StreamReader r = new System.IO.StreamReader(new GZipStream(res.GetResponseStream(), CompressionMode.Decompress),encode);