账号通
    

账号  

密码  

1276

查看

0

回复
主题:[ICMS]utf8空格采集发布为???的原因 [收藏主题]  
yigehaobb 当前离线

20

主题

6

广播

1

粉丝
添加关注
级别:学前班

用户积分:653 分
登录次数:19 次
注册时间:2013/10/27
最后登录:2016/4/27
yigehaobb 发表于:2014/3/22 8:48:15   | 只看该作者 查看该作者主题 楼主 
科汛在线商城系统(NET)

    最近发现有些页面内容为UTF-8编码。从设置采集规则到正式采集都非常顺利,页面内容被完整地抓取过来并存发布到科讯net里,不过内容中出现很多“问号”,这些“问号”就是UTF-8编码下的空格,而有些utf8的空格正常。

    为了解决这个问题我查找了些资料,说其中的原因:在UTF-8编码里面存在一个特殊的字符,其编码是“0xC2 0xA0”,转换成字符的时候表现为一个半角空格,跟一般的半角空格(ASCII 0×20)不同的是它的宽度不会被压缩,所以排版中常能用到它。但是GB2312、Unicode之类并没有这样的字符,所以转换后会显示为“?”号,只是显示为问号而不是真正的问号,所以无法被替换!

      搜索到的解决办法(问题是还是不知道怎么解决啊),在正式采集之间,先临时采集一个页面,取出其中的“?”空格这个字符,并将该字符存入“缓存”中,然后就开始正式的采集工作了,每采到一个页面就拿“缓存”中的字符进行全文替换,替换成常规的“ ”空格。速度稍微慢一点但效果很好!

 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
<上一主题 | 下一主题 >
Powered By KesionCMS Version X1
厦门科汛软件有限公司 © 2006-2016 页面执行0.06250秒 powered by KesionCMS 9.0