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

相关文章

  • .NET中的Swagger使用示例详解

    .NET中的Swagger使用示例详解

    Swagger (OpenAPI) 是一个与语言无关的规范,用于描述 REST API,这篇文章给大家介绍.NET中的Swagger使用,感兴趣的朋友一起看看吧
    2023-12-12
  • 解决ASP.NET中的各种乱码问题总结

    解决ASP.NET中的各种乱码问题总结

    本篇文章主要介绍了解决ASP.NET中的各种乱码问题总结,非常具有实用价值,需要的朋友可以参考下。
    2016-12-12
  • 比较简单的将数据信息导入wrod文档方案(C# for word)

    比较简单的将数据信息导入wrod文档方案(C# for word)

    史上最简单将数据信息导入wrod文档方案(C# for word)
    2010-01-01
  • asp.net实现的MD5加密和DES加解密算法类完整示例

    asp.net实现的MD5加密和DES加解密算法类完整示例

    这篇文章主要介绍了asp.net实现的MD5加密和DES加解密算法类,结合完整实例形式分析了asp.net实现MD5加密算法及DES加密和解密的相关技巧,需要的朋友可以参考下
    2016-07-07
  • asp.net Javascript获取CheckBoxList的value

    asp.net Javascript获取CheckBoxList的value

    最近在做一个BS的小项目,记得自己搞asp.net的时候,还是两年以前,大部分的东西只是有点印象,忘得差不多了,所以这次也算是温习的过程吧,一边学习,一边赶工,呵呵呵。。。。
    2009-12-12
  • .NET 中的高性能队列 Channel详解

    .NET 中的高性能队列 Channel详解

    Channel<T>是.NET中一个功能强大且灵活的高性能队列,它支持多线程并发、异步编程、容量控制等多种特性,非常适合用于处理复杂的数据传递和并发处理任务,本文介绍.NET 中的高性能队列 Channel,感兴趣的朋友一起看看吧
    2024-07-07
  • .Net Core Cors中间件的深入讲解

    .Net Core Cors中间件的深入讲解

    这篇文章主要给大家介绍了关于.Net Core Cors中间件的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-07-07
  • ASP.NET MVC 导出Word报表

    ASP.NET MVC 导出Word报表

    本文主要介绍了ASP.NET MVC 导出Word报表的方法,具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • ASP.NET WebForms实现全局异常捕获与处理的最佳实践

    ASP.NET WebForms实现全局异常捕获与处理的最佳实践

    文章介绍了在ASP.NET WebForms中实现全局异常捕获与处理的最佳实践,包括在Global.asax中使用Application_Error、在Web.config中配置customErrors、在代码中使用try-catch、全局异常过滤以及使用日志记录库等方法,感兴趣的朋友一起看看吧
    2025-01-01
  • asp.net 打印控件使用方法

    asp.net 打印控件使用方法

    做过很多的Web项目,大多数在打印页面内容的时候,采用的都是通过Javascript调用系统内置的打印方法进行打印,也就是调用 PrintControl.ExecWB(?,?)实现直接打印和打印预览功能。
    2010-01-01

最新评论