问题: 网爬工具中自动搜集页面信息时,有的页面出现了出现乱码现象 原因: 读取页面信息是使用了错误的编码类型。C#.NET从现在的类中获取得来的编码信息有时是错误的,本人认为对不是ASP.NET的应用程序,它读过来的编码信息都是错误的。 解决: 思路:必须先在运行时获取得该页面的编码,再去读取页面的内容,这样得来的页面内容才不会出现乱码现象。 方法: 1:使用ASCII编码去读取页面内容。 2:使用正则表达式从读取的页面内容中筛选出页面的编码信息。上个步骤获取的页面信息可能会有乱码。但HTML标志是正确的,所有可以从HTML标志中得到编码的信息。 3.用正确的编码类型去读取页面信息。 如果哪位有更好的方法,请多赐教啊!
下面附上代码:
代码演示 using System; using System.Collections.Generic; using System.Text; using System.Net; using System.Web; using System.IO; using System.Text.RegularExpressions; namespace charset { class Program { static void Main(string[] args) { string url = "http://www.gdqy.edu.cn "; GetCharset1(url); GetChartset2(url);
Console.Read(); } // 通过HttpWebResponse直接获取页面编码 static void GetCharset1(string url) { try { WebRequest webRequest = WebRequest.Create(url); HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse();
string charset = webResponse.CharacterSet;
上一篇:SubSonic 的字段名未转义问题修正
下一篇:.net 2.0(c#)下简单的FTP应用程序
复制本页网址和标题,发送给你QQ/Msn的好友一起分享