您现在的位置:龙卷风首页 ›› 网络编程 ›› 阅读文章

搜索引擎链接调用的编码问题

在UTF-8编码的网页中调用搜索引擎的快捷链接 通过参数化或编码转换解决UTF-8与搜索引擎不兼容问题。

大部分中文搜索引擎接收的编码是GB2312的,包括Google默认的编码。但是使用UTF-8制作网页是一种趋势,方便不同地区的人们浏览。在网页中设置类似于“在Google中搜索关于XXX的资料”这样的链接,可以为访客提供方便,但是涉及到UTF-8编码时,事情就变得有些麻烦了。

1、直接能使用UTF-8编码的搜索引擎。

只有Google和雅虎。

示例:Google:http://www.google.cn/search?hl=zh-CN&q=%e6%bd%ae%e5%b7%9e%e5%b8%82%e7%88%b1%e5%bf%83%e7%a6%8f%e5%88%a9%e4%bc%9a

Yahoo:http://one.cn.yahoo.com/s?pid=hp&v=web&p=%e6%bd%ae%e5%b7%9e%e5%b8%82%e7%88%b1%e5%bf%83%e7%a6%8f%e5%88%a9%e4%bc%9a

2、使用参数就能解决的搜索引擎。

包括百度、腾讯SOSO,只需要在链接后添加参数ie=UTF-8,效果就跟使用GB2312一样。

示例:百度:http://www.baidu.com/s?cl=3&ie=utf-8&wd=%e6%bd%ae%e5%b7%9e%e5%b8%82%e7%88%b1%e5%bf%83%e7%a6%8f%e5%88%a9%e4%bc%9a

腾讯SOSO:http://www.soso.com/q?pid=s.idx&ie=utf-8&w=%e6%bd%ae%e5%b7%9e%e5%b8%82%e7%88%b1%e5%bf%83%e7%a6%8f%e5%88%a9%e4%bc%9a

3、不能使用UTF-8编码的搜索引擎

搜狗的web搜索目前还不支持,mp3和新闻搜索倒是可以使用encoding=UTF-8这样的参数来解决!不支持只能通过其它方法来转换啦,C#中可以通过下面这个方法来转换:

System.Web.HttpUtility.UrlEncode(String,Encoding),只要指定Encoding为GB2312就可以了。例如:HttpUtility.UrlEncode("龙卷风",System.Text.Encoding.GetEncoding("GB2312"))

示例:http://www.sogou.com/web?query=%b3%b1%d6%dd%ca%d0%b0%ae%d0%c4%b8%a3%c0%fb%bb%e1

用JS转换只适合在IE中使用,通用性受到限制,不在考虑范围之内。如有兴趣,可参考本站文章:js版的UrlEncode

 

作者 不见不散 本文仅代表作者观点,与龙卷风资讯网立场无关。

我来说两句

1 楼 阿梦 发表于 2009-2-17 From IP: 220.171.28.197
看不懂!
作者主页: http://
内容/Content