作者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
→ bdvstg:我想問 "ISO-8859-1" 是怎麼來的? 02/24 15:16
→ bdvstg:換成 "UTF-8" 試試 (那網頁原始碼寫的) 02/24 15:18
→ optimist9266:Fiddler2 + 位元組比對應該就能解開 02/24 18:05
→ optimist9266:我剛剛有小測了一下 HttpWebRequest抓下來的位元組跟 02/24 18:06
→ optimist9266:瀏覽器的有出入 請參考封包監視找出瀏覽器跟程式的 02/24 18:07
→ optimist9266:差異性 並加以修正 02/24 18:07
→ bdvstg:GetResponse之前 加一行要求回傳編碼為UTF-8的程式碼 02/24 20:04
→ bdvstg:req.Headers.Add("Accept-Charset", "UTF-8"); 02/24 20:04
→ bdvstg:Encoding那裡再改成Encoding.UTF8就好了 02/24 20:06
→ jono103:感謝各位,b大方法可行,原來要指定Accept-Charset 02/25 01:04