<span id="blogname"></span>


All that's beautiful drifts away like the waters ——W. B. Yeats
Modisied by Leslie-Cheung.com
 
2009/9/28 22:59:00
动易采集utf-8网页一个小bug
 

动易采集utf-8的网页有一个小问题,不知道有没有朋友碰到过,我是遇到很多次了。当采集的目标站是utf-8时,在采集设置时肯定是选择utf-8的编码,但是采集后浏览文章会发现有些文章里面有问号(其实是乱码)。

实际上是一个unicode编码的空格,我也不知道怎么出来的,如果你不管他直接生成,会发现生成的网页出问题,表现为什么也没有,查看代码也是。这样的情况我遇到多次,都是采集utf-8格式的网站出现的。以前,我不得不在后台一篇篇查看,修改(实际上你可以不用修改,只需要点一下修改,然后保存即可,不用动内容,但是这一步是必要的,要不然就有问题)。

今天又遇到这样的问题,我决定把这个问题搞定,一劳永逸。我仔细研究了一下,发现就是采集的时候不知道是因为过滤还是什么原因,反正在某些地方就多出来一个空格,而这个空格在数据库里面是空白的,把数据库content的内容复制到记事本保存会提示有unicode的编码,用编辑器查看这个空格既不是全角空格也不是半角空格,不知道怎么来的。为什么点一下修改然后在保存就好了呢,原来当修改有问题的文章内容时,查看源代码,会看到这个空格会被动易转换为&#160,然后保存这个空格就被动易自动转换了。这个转换经过我查看源码是通过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了,再也没有那些讨厌的问号了

 
By 小鱼儿  阅读全文 | 回复(0) | 引用通告 | 编辑

发表评论:
 
Calendar

<<  < 2009 - >  >>
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30

Login


Bulletin
Recent Entries
Comments
Messages
Information
Links


Designed by Subdreamer
 
Powered by Oblog.