作者leicheong (睡魔)
看板C_Sharp
標題Re: [問題] 關於擷取所有原始碼
時間Wed Sep 26 15:18:24 2007
※ 引述《cole945 (躂躂..)》之銘言:
: 假設你是用 WebClient 抓了一個網頁下來
: WebClient client = new WebClient();
: byte[] data = client.DownloadData("http://www.google.com");
: /* 在這裡用某種神奇的方法偵測他是什麼編碼,
: ie, 取得他的 charset, 預設是 iso-8859-1 */
簡單的方法是看Response header中的charset部份:
Content-Type: text/html; charset=UTF-8
也可以看body中的meta tag:
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
通常是以meta tag的為準, 因為這是要手動加上去的.
沒有的話設成Response header的就可以了. 這在主流的web server都會
自動加上去的. 預設通常會是utf-8, 不過因為這和iso-8859-1和在純ASCII
英文的編碼中除了開始時沒有BOM外沒有任何分別, 所以這樣就好. :P
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.73.76.102
推 horngsh:請教一下, BOM是什麼? 09/26 16:23
推 cole945:大部份的server都沒有在reponse header中回應charset呀._. 09/26 16:33
→ leicheong:噢. IIS6和7都有, IIS5.5或以下的沒有... 09/26 19:01
→ leicheong:沒有的話預設UTF-8就好, 理由同上 09/26 19:02
推 chhuang:你不能假設大家都使用 IIS 吧...@@ 09/26 22:32
推 leicheong:Apache和lighthttpd很早就有. 有問題的只有IIS吧? 09/27 10:04