c#使用nsoup解析html乱码解决方法分享 nsoup教程

 更新时间:2014年01月14日 11:36:02   作者:  
NSoup是JSoup的Net移植版本。使用方法基本一致。如果项目涉及HTML的处理,强烈推荐NSoup。但是遗憾的是NSoup默认的编码是UTF-8,处理中文有乱码,下面给出二种解决方法

下载地址:http://nsoup.codeplex.com/

简单用法如下:

复制代码 代码如下:

NSoup.Nodes.Document doc = NSoup.NSoupClient.Parse(HtmlString);

处理网络上的页面:

复制代码 代码如下:

NSoup.Nodes.Document doc = NSoup.NSoupClient.Connect("https://www.jb51.net/").Get();

但是遗憾的是NSoup默认的编码是UTF-8,处理中文有乱码(对于编码是UTF-8的自然不会有乱码,但是有些GB2312的就可能有乱码,谢谢 forhells的提醒)。

目前我找到两种解决办法:

1.下载网页源代码再处理

复制代码 代码如下:

WebClient webClient = new WebClient();
String HtmlString=Encoding.GetEncoding("utf-8").GetString(webClient.DownloadData("https://www.jb51.net"));
NSoup.Nodes.Document doc = NSoup.NSoupClient.Parse(HtmlString);

2.获得网页的流

复制代码 代码如下:

WebRequest webRequest=WebRequest.Create("https://www.jb51.net");
NSoup.Nodes.Document doc = NSoup.NSoupClient.Parse(webRequest.GetResponse().GetResponseStream(),"utf-8");

第二种用着比较方便,但是我觉得第一种比较合适,毕竟NSoup是个Html解析类,下载网页代码这种事情本来不应该交给它。

相关文章

  • C#中实现CAN通信的使用

    C#中实现CAN通信的使用

    本文主要介绍了C#中实现CAN通信的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-04-04
  • 浅谈C# winForm 窗体闪烁的问题

    浅谈C# winForm 窗体闪烁的问题

    下面小编就为大家带来一篇浅谈C# winForm 窗体闪烁的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • C# lambda表达式应用如何找出元素在list中的索引

    C# lambda表达式应用如何找出元素在list中的索引

    这篇文章主要介绍了C# lambda表达式应用如何找出元素在list中的索引的相关资料,需要的朋友可以参考下
    2018-01-01
  • 基于C#的抽象类别详解

    基于C#的抽象类别详解

    下面小编就为大家分享一篇基于C#的抽象类别详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-12-12
  • C#实现图表中鼠标移动并显示数据

    C#实现图表中鼠标移动并显示数据

    这篇文章主要为大家详细介绍了C#实现图表中鼠标移动并显示数据,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • C#实现动态数据绘图graphic的方法示例

    C#实现动态数据绘图graphic的方法示例

    这篇文章主要介绍了C#实现动态数据绘图graphic的方法,结合实例形式分析了C#根据动态数据绘制2D数据表格的相关操作技巧,需要的朋友可以参考下
    2017-09-09
  • C#实现JSON字符串序列化与反序列化的方法

    C#实现JSON字符串序列化与反序列化的方法

    在这篇文章中,我们将会学到如何使用C#,来序列化对象成为Json格式的数据,以及如何反序列化Json数据到对象。
    2017-01-01
  • C#如何从byte[]中直接读取Structure实例详解

    C#如何从byte[]中直接读取Structure实例详解

    这篇文章主要给大家介绍了关于利用C#如何从byte[]里直接读取Structure的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-03-03
  • 详解WPF双滑块控件的使用和强制捕获鼠标事件焦点

    详解WPF双滑块控件的使用和强制捕获鼠标事件焦点

    这篇文章主要为大家详细介绍了WPF中双滑块控件的使用和强制捕获鼠标事件焦点的实现,文中的示例代码讲解详细,感兴趣的可以尝试一下
    2022-07-07
  • C#实现简单的天气预报示例代码

    C#实现简单的天气预报示例代码

    这篇文章主要介绍了C#实现简单的天气预报示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06

最新评论