[置顶] DiyChrome更新1.1,提供检测,下载,一键制作绿色版等实用功能
[置顶] 交换友情链接说明
C#获取网页源码,自动判断网页字符集编码

最近开始打算重新学习C#,并且尝试做点C#练习。而最让我感兴趣的还是和网站相关的东西。那就做个获取网站源码,采集文章的功能吧。

根据网上的资料,使用WebClient来获取源码,很容易就能得到网页源码。但是,发现,不同网站的网页字符编码就不一样的,如何自动分别不同网站的字符编码,而正确解释网页中的汉字呢。在C#里,提供了丰富的工具类库,可以轻松的转码。但是,却发现不能自动获取网站上的字符编码而自动正确的解释源码,而导致汉字显示乱码。以前我也用JAVA做过这样的功能,获取网站源码,同样,在JAVA的各种获取网站源码的类库里,也不能自动根据网页字符编码自动正确解释编码,只能我们自己手动来做了。

我的解决办法是先采用系统默认的编码从stream里得到源码,再使用正则表达式获取源码中的[获取网页字符编码描述信息],这个信息,一般来说,网页里都会有的,在网页源码的<head>里,类似这样的代码:<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />(其实不一样完全这样,有些不规范的,没有双引号,或者最后面没有/闭合,所以,正则表达式得考虑周全些),从这个代码里来获取编码信息,再判断系统当前的默认编码是否和这个一样,如果不同,再使用网页中取到的编码来重新从stream里解释取得网页源码。

源码如下:(下面这段代码是一个完整的获取网页源码,且自动正确解释汉字)


Tags: C#  网页源码  CSDN  爬虫  乱码  
asp发送邮件功能源码
以前一直以为,在ASP网站里添加发邮件的功能很麻烦,没想到,在网上看到的方法却很简单,摘录以下代码 dim   mailobject     set   mailobject=server.createobject("cdonts.newmail")   组件必须注册  mailobject.from="tomail@aaa.com"   看这些代码,让我很郁闷,怎么没有密码呢?如果没密码,怎么可以用那个邮箱来发送邮件呢?如果谁知道的,请教我一下哦...
Tags: ASP  
简单问题--VC制作的程序运行时如何动态设置控件焦点
比如运行程序后,在文本框里按回车,焦点移动到下一个控件,或者点击按钮后,焦点移动到下一个控件。 很简单wnd.setfocus() 。eg:GetDlgItem(要设成焦点控件的ID)->SetFocus() 。不行了啊!不过我发现,这个方法似乎不大好,焦点是过去了,如果现在有焦点的这个控件是一个按钮,那点击回车时,却不能击发按钮的点击事件,可是击发了默认按钮的事件。 后来找了一个不错的方法:this->GotoDlgCtrl(this->GetDlgItem(要设成焦点控件的ID)) ,这个方法不错,推荐用这个。。。。。。
Tags: VC  
VC MFC 如何删除文件,目录,文件夹
项目中突然要使用删除文件的功能,于是看看书,网上找找资料,总结了一些方法,其实都很简单的。希望对大家有帮助: 第一种方法: 定义一个文件类对象来操作 CFile TempFile; TempFile.Remove(指定文件名); 第二种方法: 使用系统函数 DeleteFile( LPCSTR filename )删除文件 _rmdir(),删除目录 DeleteDirectory(sTempDir); 删除目录 RemoveDirectory(sTempDir);删除目录 eg: DeleteFile( char *tempFileName); 。。。。。。
Tags: VC  
vc中常用的几个数据转换方法-int char* float与CString 之间的转换
vc中常用的几个数据转换方法-int char* float与CString 之间的转换 1、int <->CString 1) int ->CString 2) CString->int 2. char* 与CString 1)char*->CString 2) CString -> char* 3. float<->CString 1)float->CString 2) CString->float
Tags: VC  
cstdiofile类 - 详解文章收录
CStdioFile继承自CFile,一个CStdioFile 对象代表一个用运行时函数fopen 打开的C 运行时流式文件。 流式文件是被缓冲的,而且可以以文本方式(缺省)或二进制方式打开。文本方式提供对硬回车—换行符对的特殊处理。当你将一个换行符(0x0A)写入一个文本方式的CStdioFile 对象时,字节对(0x0D,0x0A)被发送给该文件。当你读一个文件时,字节对(0x0D,0x0A)被翻译为一个字节(0x0A)。 CStdioFile 不支持Duplicate,LockRange,和UnlockRange 这几个CFile 函数。如果在CStdioFile 中调用了这几个函数,将会出现CNoSupported 异常。
Tags: VC  
VC-终止线程,ExitThread函数,Te r m i n a t e T h r e a d函数,撤消线程,详解
VC-终止线程,ExitThread函数,Te r m i n a t e T h r e a d函数,撤消线程,详解 6.5 终止线程的运行 若要终止线程的运行,可以使用下面的方法: • 线程函数返回(最好使用这种方法)。 • 通过调用E x i t T h r e a d函数,线程将自行撤消(最好不要使用这种方法)。 • 同一个进程或另一个进程中的线程调用Te r m i n a t e T h r e a d函数(应该避免使用这种方法)。 • 包含线程的进程终止运行(应该避免使用这种方法)。 下面将介绍终止线程运行的方法,并且说明线程终止运行时会出现什么情况。 6.5.1 线程函数返回 始终都应该将线程设计成这样的形式,即当想要线程终止运行时,它们就能够返回。这是 确保所有线程资源被正确地清除的唯一办法。 如果线程能够返回,就可以确保下列事项的实现: • 在线程函数中创建的所有C + +对象均将通过它们的撤消函数正确地撤消。 • 操作系统将正确地释放线程堆栈使用的内存。 • 系统将线程的退出代码(在线程的内核对象中维护)设置为线程函数的返回值。 • 系统将递减线程内核对象的使用计数。 6.5.2 ExitThread函数 可以让线程调用E x i t T h r e a d函数,以便强制线程终止运行:
Tags: VC  
ASP网站数据采集程序制作:一个采集入库生成本地文件的几个FUCTION(可用来生成HTML静态网页)
ASP网站数据采集程序制作:一个采集入库生成本地文件的几个FUCTION(可用来生成HTML静态网页) 看着一个又一个网站系统里都带了采集功能模块,让我心动,很想让自己做的网站里也带个采集模块,可惜一直都不知道如何下手,现在有了这几个函数,你也可以制作出自己的采集程序,而且可以利用这样的原理来生成HTML静态网页. 本文里介绍采集程序的方法分成以下几个函数来实现: 1:SaveFiles(byref from,byref tofile) 作用 :利用流保存文件 ' 参数 :from(远程文件地址),tofile(保存文件位置) 2:IsExists(byref filespec) 作用 :利用fso检测文件是否存在,存在返回true,不存在返回false ' 参数 :filespes(文件位置) .....
Tags: ASP  
解决jsp,tomcat,MYSQL下中文乱码问题
这些天开发一个项目,服务器是tomcat,操作系统是xp,采用的是MVC架构,模式是采用Facade模式,总是出现乱码,通过简单的设置页面字符集,总算可以正确显示中文,可是没想到表单里提交的数据里的中文还是有乱码,我狂晕,没想到JSP里的乱码问题比ASP里严重多了,自己也解决了好多天,同事也帮忙解决,也参考了网上众多网友的文章和意见,总算是搞定。但是好记性不如烂笔杆,所以特意记下,以防止自己遗忘,同时也给那些遇到同样问题的人提供一个好的参考途径:    &...
Tags: tomcat服务器  
ASP过滤SQL非法字符并格式化html代码(不错的功能函数集)
ASP过滤SQL非法字符并格式化html代码. 过滤SQL非法字符 Function checkStr(Chkstr) dim Str:Str=Chkstr if isnull(Str) then checkStr = "" exit Function else Str=replace(Str,"'","") Str=replace(Str,";","") Str=replace(Str,&quo...
Tags: ASP  
VC(C)操作文件之-文件的打开(fopen函数)
文件的打开(fopen函数) fopen函数用来打开一个文件,其调用的一般形式为: 文件指针名=fopen(文件名,使用文件方式); 其中, “文件指针名”必须是被说明为FILE 类型的指针变量; “文件名”是被打开文件的文件名; “使用文件方式”是指文件的类型和操作要求。 “文件名”是字符串常量或字符串数组。 例如: FILE *fp; fp=("file a","r&...
Tags: VC  
VC操作文件之:CFile操作详解
CFile操作详解各种关于文件的操作在程序设计中是十分常见,如果能对其各种操作都了如指掌,就可以根据实际情况找到最佳的解决方案,从而在较短的时间内编写出高效的代码,因而熟练的掌握文件操作是十分重要的。本文将对Visual C++中有关文件操作进行全面的介绍,并对在文件操作中经常遇到的一些疑难问题进行详细的分析。  1.文件的查找  当对一个文件操作时,如果不知道该文件是否存在,就要首先进行查找。MFC中有一个专门用来进行文件查找的类CFileFind,使用它可以方便快捷地进行文件的查找。下面这段...
Tags: VC  
分页:[«] 1[2] [»]
Powered By Z-Blog   STYLE by busfly . FatMouse
Copyright © 2007 巴士飞扬技术博客. . 沪ICP备07027972号. 会员群1(J2EE为主):3769186.