[問題] HttpWebRequest抓雅虎網頁 中文字無法出現

看板C_Sharp作者 (不說對不起)時間16年前 (2010/02/24 14:59), 編輯推噓0(0010)
留言10則, 3人參與, 最新討論串1/1
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

02/24 15:16, , 1F
我想問 "ISO-8859-1" 是怎麼來的?
02/24 15:16, 1F

02/24 15:18, , 2F
換成 "UTF-8" 試試 (那網頁原始碼寫的)
02/24 15:18, 2F

02/24 18:05, , 3F
Fiddler2 + 位元組比對應該就能解開
02/24 18:05, 3F

02/24 18:06, , 4F
我剛剛有小測了一下 HttpWebRequest抓下來的位元組跟
02/24 18:06, 4F

02/24 18:07, , 5F
瀏覽器的有出入 請參考封包監視找出瀏覽器跟程式的
02/24 18:07, 5F

02/24 18:07, , 6F
差異性 並加以修正
02/24 18:07, 6F

02/24 20:04, , 7F
GetResponse之前 加一行要求回傳編碼為UTF-8的程式碼
02/24 20:04, 7F

02/24 20:04, , 8F
req.Headers.Add("Accept-Charset", "UTF-8");
02/24 20:04, 8F

02/24 20:06, , 9F
Encoding那裡再改成Encoding.UTF8就好了
02/24 20:06, 9F

02/25 01:04, , 10F
感謝各位,b大方法可行,原來要指定Accept-Charset
02/25 01:04, 10F
文章代碼(AID): #1BXCvRQe (C_Sharp)