欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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();
}
}