作者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
1F:推 horngsh:请教一下, BOM是什麽? 09/26 16:23
2F:推 cole945:大部份的server都没有在reponse header中回应charset呀._. 09/26 16:33
4F:→ leicheong:噢. IIS6和7都有, IIS5.5或以下的没有... 09/26 19:01
5F:→ leicheong:没有的话预设UTF-8就好, 理由同上 09/26 19:02
6F:推 chhuang:你不能假设大家都使用 IIS 吧...@@ 09/26 22:32
7F:推 leicheong:Apache和lighthttpd很早就有. 有问题的只有IIS吧? 09/27 10:04