asp.net 网页编码自动识别代码

 更新时间:2008年09月10日 01:03:15   作者:  
另外一位网友空间/IV提供的代码,功能同HttpWebRequest获取网页源代码时自动识别网页编码
复制代码 代码如下:

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(https://www.jb51.net));

Console.Read();
}
}

相关文章

  • WPF框架Prism中区域Region用法介绍

    WPF框架Prism中区域Region用法介绍

    这篇文章介绍了WPF框架Prism中区域Region用法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-02-02
  • Asp.net SignalR支持的平台有哪些

    Asp.net SignalR支持的平台有哪些

    Asp.net SignalR支持的平台有哪些,这篇文章主要介绍了Asp.net SignalR支持的平台,需要的朋友可以参考下
    2016-04-04
  • 详解.Net单元测试方法

    详解.Net单元测试方法

    本篇文章给大家详细讲述了.NET单元测试的详细方法和步骤,有需要的朋友参考学习下。
    2018-07-07
  • 如何在ASP.Net Core中使用 IHostedService的方法

    如何在ASP.Net Core中使用 IHostedService的方法

    这篇文章主要介绍了如何在ASP.Net Core中使用 IHostedService的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • .NET+Sqlite支持加密的操作方法

    .NET+Sqlite支持加密的操作方法

    这篇文章主要介绍了.NET+Sqlite如何支持加密,如果想支持登录加密,需要另外的扩展SQLite 加密扩展(SQLite Encryption Extension,),具有读取/写入 AES 加密数据库的附加功能,需要的朋友可以参考下
    2021-12-12
  • ASP.NET MVC使用EPPlus,导出数据到Excel中

    ASP.NET MVC使用EPPlus,导出数据到Excel中

    这篇文章介绍的是怎样导出数据到Excel文件中,大多数的后端程序都有报表功能:把显示在Grid中的数据导出到Excel文件中,这篇文章中使用的是EPPlus组件。需要的朋友可以参考借鉴
    2016-12-12
  • .NET并发编程之函数闭包

    .NET并发编程之函数闭包

    这篇文章主要介绍了.NET并发编程之函数闭包,有对于这方面不太懂的同学可以研究下
    2021-02-02
  • Entity Framework使用DBContext实现增删改查

    Entity Framework使用DBContext实现增删改查

    这篇文章介绍了Entity Framework使用DBContext实现增删改查的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-10-10
  • asp.net(vb)实现金额转换成大写的函数

    asp.net(vb)实现金额转换成大写的函数

    asp.net(vb)实现金额转换成大写的函数代码,需要的朋友可以参考下。
    2011-10-10
  • asp .net实现给图片添加图片水印方法示例

    asp .net实现给图片添加图片水印方法示例

    图片上加水印相信每位程序员都会遇到这个需求,下面这篇文章主要给大家介绍了asp .net实现给图片添加图片水印的方法,文中给出了完整的实例代码,相信对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。
    2017-03-03

最新评论