C#使用NSoup解析HTML的乱码解决
2011-11-05 19:06
288 查看
NSoup是JSoup的Net移植版本。使用方法基本一致。
如果项目涉及HTML的处理,强烈推荐NSoup,毕竟字符串截断太苦逼了。
下载地址:
http://nsoup.codeplex.com/
简单用法如下:
处理网络上的页面:
但是遗憾的是NSoup默认的编码是UTF-8,处理中文有乱码(对于编码是UTF-8的自然不会有乱码,但是有些GB2312的就可能有乱码,谢谢 forhells的提醒)。
目前我找到两种解决办法:
1.下载网页源代码再处理
2.获得网页的流
第二种用着比较方便,但是我觉得第一种比较合适,毕竟NSoup是个Html解析类,下载网页代码这种事情本来不应该交给它。
如果项目涉及HTML的处理,强烈推荐NSoup,毕竟字符串截断太苦逼了。
下载地址:
http://nsoup.codeplex.com/
简单用法如下:
NSoup.Nodes.Document doc = NSoup.NSoupClient.Parse(HtmlString);
处理网络上的页面:
NSoup.Nodes.Document doc = NSoup.NSoupClient.Connect("http://www.cnblogs.com/htynkn/").Get();
但是遗憾的是NSoup默认的编码是UTF-8,处理中文有乱码(对于编码是UTF-8的自然不会有乱码,但是有些GB2312的就可能有乱码,谢谢 forhells的提醒)。
目前我找到两种解决办法:
1.下载网页源代码再处理
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.获得网页的流
WebRequest webRequest=WebRequest.Create("http://www.cnblogs.com/htynkn/"); NSoup.Nodes.Document doc = NSoup.NSoupClient.Parse(webRequest.GetResponse().GetResponseStream(),"utf-8");
第二种用着比较方便,但是我觉得第一种比较合适,毕竟NSoup是个Html解析类,下载网页代码这种事情本来不应该交给它。
相关文章推荐
- 改进方法--C#使用NSoup解析HTML的乱码解决
- c#使用nsoup解析html乱码解决方法分享 nsoup教程
- 使用asp.net/c# ajax 乱码的解决办法
- VC轻松解析XML文件--CMarkup使用方法(解决解析中文字符出现乱码问题)
- 关于利用Jsoup解析HTML中 变成非传统空格或乱码问题解决方法
- C# HTML解析工具HtmlAgilityPack使用实例(一)
- C#:使用HtmlAgilityPack解析Html
- VC轻松解析XML文件--CMarkup使用方法(解决解析中文字符出现乱码问题)
- 使用C#和HtmlAgilityPack解析HTML
- C#中使用HtmlAgilityPack对html进行解析
- 使用Formail发送html格式的中文主题邮件,解决乱码问题等
- 使用iTextSharp 解析html生成pdf,xmlworker不支持中文的解决办法
- Java 文件上传,使用FileItem解析时,出现乱码的解决办法
- C#中使用streamreader读取中文成乱码的解决方法
- jsp中使用jstl导入html乱码问题解决方法
- 使用jxl.jar解析excel特殊符号乱码问题解决.
- 使用v-html解决Vue.js渲染过程中html标签不能被解析(html标签显示为字符串)
- Jsoup解析HTML中 出现乱码问题解决办法
- spring boot新手教程之使用FastJson解析JSON数据以及解决返回中文乱码问题
- 使用HtmlParser解析HTML (C#版)