Baidu,163,sogou…编码都用GB2312?!
由于发现我的blog点击来源里有很多百度的搜索,而由于百度没有更新对我的blog的抓取,致使有些关键词链到了更新后文章不存在的页面,比如说,有个页面是分类的首页,由于更新原来拥有关键词的文章随着更新被自动放到下一页去了.相信这是很多站长都会遇到的问题.于是我想做个来源分析的function,给来自搜索引擎的访客提示,若他发现这不是他要找的页面就可以点击一个链接,通过站内的搜索功能找到需要的文章.这个功能已经完成,目前支持google,yahoo!,msn,live,有道.如果你是被这几个搜索引擎引导来到我的blog,那么就会显示这样的提示.当然,这个图片只是为了演示,无极生这个词的搜索排名我是在第一页的.突然冒出个想法,让js在页面内搜索访问关键词之后再显示这样的提示岂不更好?下次上网时会实现这个功能.

等一下,不是说主要针对百度的么?对.但是在目前情况下(使用javascript),要想对baidu进行来源识别已经不可能.因为百度搜索字符串不是用UTF-8进行编码,而是GB2312.由于javascript只支持utf解码,因此没有办法对点击来源地址中的搜索词部分进行解码并进行处理.而google,msn,live,yahoo!都是使用utf8.
在程序完成后用百度测试的时候发现没有运行结果时我就奇怪.后来用firebug查看时发现有malformed URI sequence错误.当时就奇怪为什么一个所谓世界上最大的中文搜索引擎竟然用gb2312.那些使用没有gb2312编码的浏览器的国外用户怎么办?我不懂.
还有163,soso,sogou…原来大家的都只是为了国内的市场(某些低版本的中文版浏览器不支持UTF-8,对GB2312没有问题).既然没人想做世界级的搜索引擎,没人想做Google,那也没什么好说的了.
虽然网上有使用vbs的解决方法,但是FireFox不支持vbs.还有用查表的方法,因为涉及服务器端脚本和文件读取,所以也没有可能实现.
相关阅读:
