C#使用NSoup解析HTML的乱码解决
NSoup是JSoup的Net移植版本。使用方法基本一致。
如果项目涉及HTML的处理,强烈推荐NSoup,毕竟字符串截断太苦逼了。
下载地址:
简单用法如下:
1 | NSoup.Nodes.Document doc = NSoup.NSoupClient.Parse(HtmlString); |
处理网络上的页面:
1 | NSoup.Nodes.Document doc = NSoup.NSoupClient.Connect( "http://www.cnblogs.com/htynkn/" ).Get(); |
但是遗憾的是NSoup默认的编码是UTF-8,处理中文有乱码(对于编码是UTF-8的自然不会有乱码,但是有些GB2312的就可能有乱码,谢谢 forhells的提醒)。
目前我找到两种解决办法:
1.下载网页源代码再处理
1 2 3 | WebClient webClient = new WebClient(); String HtmlString=Encoding.GetEncoding( "utf-8" ).GetString(webClient.DownloadData( "http://www.cnblogs.com/htynkn/" )); NSoup.Nodes.Document doc = NSoup.NSoupClient.Parse(HtmlString); |
2.获得网页的流
1 2 | WebRequest webRequest=WebRequest.Create( "http://www.cnblogs.com/htynkn/" ); NSoup.Nodes.Document doc = NSoup.NSoupClient.Parse(webRequest.GetResponse().GetResponseStream(), "utf-8" ); |
第二种用着比较方便,但是我觉得第一种比较合适,毕竟NSoup是个Html解析类,下载网页代码这种事情本来不应该交给它。
作者:黄云坤
出处:http://www.huangyunkun.com/
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
支持:
新浪微博
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库