作者jono103 (不说对不起)
看板C_Sharp
标题[问题] HttpWebRequest抓雅虎网页 中文字无法出现
时间Wed Feb 24 14:59:37 2010
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse webresponse = (HttpWebResponse)req.GetResponse();
Stream stream = webresponse.GetResponseStream();
StreamReader streamreader = new StreamReader(stream,
Encoding.GetEncoding("ISO-8859-1"));
String html = streamreader.ReadToEnd();
/*
url为雅虎网域,如下
http://tw.search.yahoo.com/search?p=%E6%B8%AC%E8%A9%A6&fr=yfp&ei=utf-8&v=0
html 当中的中文字都无法出现(不是乱码,而是没有中文字),其他都正常
请教各位先进 谢谢
*/
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.125.46.68
1F:→ bdvstg:我想问 "ISO-8859-1" 是怎麽来的? 02/24 15:16
2F:→ bdvstg:换成 "UTF-8" 试试 (那网页原始码写的) 02/24 15:18
3F:→ optimist9266:Fiddler2 + 位元组比对应该就能解开 02/24 18:05
4F:→ optimist9266:我刚刚有小测了一下 HttpWebRequest抓下来的位元组跟 02/24 18:06
5F:→ optimist9266:浏览器的有出入 请参考封包监视找出浏览器跟程式的 02/24 18:07
6F:→ optimist9266:差异性 并加以修正 02/24 18:07
7F:→ bdvstg:GetResponse之前 加一行要求回传编码为UTF-8的程式码 02/24 20:04
8F:→ bdvstg:req.Headers.Add("Accept-Charset", "UTF-8"); 02/24 20:04
9F:→ bdvstg:Encoding那里再改成Encoding.UTF8就好了 02/24 20:06
10F:→ jono103:感谢各位,b大方法可行,原来要指定Accept-Charset 02/25 01:04