当前位置: 编程技术>.net/c#/asp.net
c#使用nsoup解析html乱码解决方法分享 nsoup教程
来源: 互联网 发布时间:2014-10-26
本文导语: 下载地址:http://nsoup.codeplex.com/ 简单用法如下: 代码如下:NSoup.Nodes.Document doc = NSoup.NSoupClient.Parse(HtmlString); 处理网络上的页面: 代码如下:NSoup.Nodes.Document doc = NSoup.NSoupClient.Connect("http://www./").Get(); 但是遗憾的是NSoup默认的编码...
下载地址:http://nsoup.codeplex.com/
简单用法如下:
代码如下:
NSoup.Nodes.Document doc = NSoup.NSoupClient.Parse(HtmlString);
处理网络上的页面:
代码如下:
NSoup.Nodes.Document doc = NSoup.NSoupClient.Connect("http://www./").Get();
但是遗憾的是NSoup默认的编码是UTF-8,处理中文有乱码(对于编码是UTF-8的自然不会有乱码,但是有些GB2312的就可能有乱码,谢谢 forhells的提醒)。
目前我找到两种解决办法:
1.下载网页源代码再处理
代码如下:
WebClient webClient = new WebClient();
String HtmlString=Encoding.GetEncoding("utf-8").GetString(webClient.DownloadData("http://www."));
NSoup.Nodes.Document doc = NSoup.NSoupClient.Parse(HtmlString);
2.获得网页的流
代码如下:
WebRequest webRequest=WebRequest.Create("http://www.");
NSoup.Nodes.Document doc = NSoup.NSoupClient.Parse(webRequest.GetResponse().GetResponseStream(),"utf-8");
第二种用着比较方便,但是我觉得第一种比较合适,毕竟NSoup是个Html解析类,下载网页代码这种事情本来不应该交给它。