| 动易采集utf-8的网页有一个小问题,不知道有没有朋友碰到过,我是遇到很多次了。当采集的目标站是utf-8时,在采集设置时肯定是选择utf-8的编码,但是采集后浏览文章会发现有些文章里面有问号(其实是乱码)。
实际上是一个unicode编码的空格,我也不知道怎么出来的,如果你不管他直接生成,会发现生成的网页出问题,表现为什么也没有,查看代码也是。这样的情况我遇到多次,都是采集utf-8格式的网站出现的。以前,我不得不在后台一篇篇查看,修改(实际上你可以不用修改,只需要点一下修改,然后保存即可,不用动内容,但是这一步是必要的,要不然就有问题)。
今天又遇到这样的问题,我决定把这个问题搞定,一劳永逸。我仔细研究了一下,发现就是采集的时候不知道是因为过滤还是什么原因,反正在某些地方就多出来一个空格,而这个空格在数据库里面是空白的,把数据库content的内容复制到记事本保存会提示有unicode的编码,用编辑器查看这个空格既不是全角空格也不是半角空格,不知道怎么来的。为什么点一下修改然后在保存就好了呢,原来当修改有问题的文章内容时,查看源代码,会看到这个空格会被动易转换为 ,然后保存这个空格就被动易自动转换了。这个转换经过我查看源码是通过Server.HTMLEncode和PE_HtmlDecode实现的。
那么采集的时候就差这一步,既然这样我给他加上,打开admin文件夹下面的Admin_Collection.asp,找到
Content = FilterScript(Content, FilterProperty) '脚本过滤
修改为Content = Server.HTMLEncode(FilterScript(Content, FilterProperty)) '脚本过滤,加上Server.HTMLEncode把html代码全部转换一下
然后加上一句Content = PE_HtmlDecode(Content) '通过这个再还原回去,把中间那个引起乱码的空格搞掉了
最后变成这样
Content = Server.HTMLEncode(FilterScript(Content, FilterProperty)) '脚本过滤 Content = PE_HtmlDecode(Content)
这样再测试一下,ok了,再也没有那些讨厌的问号了
|