asp.net 网页编码自动识别代码
程序员文章站
2022-04-29 12:52:19
复制代码 代码如下: using system; using system.net; using system.text; using system.text.regula...
复制代码 代码如下:
using system;
using system.net;
using system.text;
using system.text.regularexpressions;
class program
{
// 获取网页的html内容,根据网页的charset自动判断encoding
static string gethtml(string url)
{
return gethtml(url, null);
}
// 获取网页的html内容,指定encoding
static string gethtml(string url, encoding encoding)
{
byte[] buf = new webclient().downloaddata(url);
if (encoding != null) return encoding.getstring(buf);
string html = encoding.utf8.getstring(buf);
encoding = getencoding(html);
if (encoding == null || encoding == encoding.utf8) return html;
return encoding.getstring(buf);
}
// 根据网页的html内容提取网页的encoding
static encoding getencoding(string html)
{
string pattern = @"(?i)\bcharset=(?<charset>[-a-za-z_0-9]+)";
string charset = regex.match(html, pattern).groups["charset"].value;
try { return encoding.getencoding(charset); }
catch (argumentexception) { return null; }
}
// 程序入口
static void main()
{
console.writeline(gethtml(//www.jb51.net));
console.read();
}
}
上一篇: 高冷逗段,所言不虚
下一篇: 爆笑之逗B剧场第158季