最近在和朋友开发一个行业搜索引擎,
我作完索引那一部分开始作爬虫,
刚开始的时候一切还好,
爬了不少页面,有国内的也有外国的,
然而,当我打开网布看的时候,我吓了一跳,
所有的网页都是乱码,
这是怎么回事,
其实每一个人都知道,
这一定是编码出了问题,但是在哪里改正这一个错误这就成了一个问题,找了不少方法,最后还是用一个完善(自己这样认为,呵呵)的方法解决了这一个问题
最好的解决之道就是当你的蜘蛛收集这一个网页的时候,看一下他的编码
把它的编码给记下来,当你保存页面的时候,你就用这一种方法保存这一个页面就可以了,不知道有没有人对做搜索引擎有兴趣,其实你平常也不会遇到这样的问题,因为当你用浏览器来看网页的时候,你见到乱码的机会是很小的,除非你的系统一个编码文件丢失了,这个文件是在system里边的,并且这一个文件系统还给你备份了,C:\WINDOWS\system32\dllcache下将 mlang.dll 文件复制粘贴到C:\WINDOWS\system32\下即可.
但是在作搜索引擎的时候,你得自己去作这些事,
当用c#的时候,在网页返回的时候,有一个类是可以获得他的编码方式的,
就是HttpWebResponse的CharacterSet方法,他是可以得到网页的编码格式的,因此你就根据这一个方式来处理和保存网页就可以了,
还有一点要说明,有的网页是没有写入自己是什么编码的,你得设置一个默认的编码,很简单,你现在在哪里,如果你在America的话,你当然可以是ansic
但是你在中国的话,请一定要记住,中国的编码是gb2312,大小写对你是没有什么影响的,
在网页保存的时候,你要用到一个方法,就是streamWriter方法,他有一种好的指定编码格式,在他的构造函数里指定编码格式,
StreamWriter(string path,bool ut,Encoding youcoding)
好了,一切都搞定了,希望对作搜索的朋友有一点用,同时也希望作搜索的朋友一切学习一下,