HttpWebRequest获取网页时,如何自动识别其网页编码? 使用httpwebrequest抓取网页时,如何自动识别网页的编码?有没有什么好的解决办法?谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用正则提取<meta charset信息 HttpWebRequest re = new HttpWebRequest();道re.Headers应该有吧? 用以前用过先ReadLine取得<meta http-equiv="content-type" content="text/html;charset=gb2312">这样的信息,提取出编码后,再ReadToEnd取得整页,不知道有没有更简捷的方法 使用charset有时并不行,尤其是对于生成的静态页面 HttpWebResponse.CharacterSet property 我觉得应该优先参考meta,其次才是header。 获取GetResponseStream,分析meta的charset的值,以下代码只判断utf-8,其余的编码类型可以根据自己情况添加。 WebRequest request = WebRequest.Create(pageUrl); WebResponse response = request.GetResponse(); byte[] buffer = new byte[1500]; Stream stream = response.GetResponseStream(); stream.Read(buffer, 0, buffer.Length); page = Encoding.Default.GetString(buffer); string patternEncode = @"(?<=<\s*meta[^>]+charset\s*=\s*)utf-8"; Regex regEncode = new Regex(patternEncode, RegexOptions.IgnoreCase); Match match = regEncode.Match(page); if (match.Success) { encode = Encoding.UTF8; } wc.Encoding = encode; page = wc.DownloadString(pageUrl); 使用meta并不能完全解决,有的页面并不包含charset信息怎么办? svg的例子 为什么VS2010毛病老多的,调试不了 这样写为什么不行呢? 异步:委托?多进程?提高性能 command.parameters问题 Response.WriteFile(fileName.xml)的问题? AJAXPro 后台函数的问题 .net如何复制xml的节点 各位高手帮忙呀,问题很急的,谁有winform里的DataGrid的增删改的例子,给一个,顶者有分 普通jsp的form表单提交之后的回调函数怎么写? 《这样改变背景色》td已经应用了样式 如何在postback后修改url值
道re.Headers应该有吧?
WebResponse response = request.GetResponse();
byte[] buffer = new byte[1500];
Stream stream = response.GetResponseStream();
stream.Read(buffer, 0, buffer.Length);
page = Encoding.Default.GetString(buffer); string patternEncode = @"(?<=<\s*meta[^>]+charset\s*=\s*)utf-8";
Regex regEncode = new Regex(patternEncode, RegexOptions.IgnoreCase);
Match match = regEncode.Match(page);
if (match.Success)
{
encode = Encoding.UTF8;
} wc.Encoding = encode; page = wc.DownloadString(pageUrl);