当前位置: 诺豆网 > 网站设计

科汛KesionCMS:IE6下UTF版本奇数个搜索关键词传递错误的解决方法

2010年08月21日 haibor 发表评论(9)
union vancl

用了一段时间的科汛KesionCMS,发现不少问题,从上一版本到目前最新版本,都存在下面一个搜索方面的问题,对于搜索页面  http://localhost/plus/search/,如果你使用的是UTF-8版本,针对IE6,就会出现搜索关键词传递错误的问题!问题及示范如下:

输入一个汉字来搜索,比如“人”,然后点搜索,会出现正常的搜索结果,这时再点“文章”频道,即切换搜索频道,出来的搜索却是如下:

如图上圆圈所示,传递的关键词“人”,会被相应的修改为频道ID!同样的,点击“商品”频道搜索,会出来传递关键词为  “m=5”!

结论:输入搜索关键字为一个汉字时,会出现传递key错误!当然,你只要输入奇数个关键词,都会出现此情况!

IE6下面不行,我的猜测是关键字转码出问题了! 

解决办法

为什么只有奇数个关键字才会出现这种问题呢?突然想到,以前仿搜索系统时,http://www.nuodou.com/s/

出现不同编码的搜索引擎间传递关键字的编码问题,解决方法类似。也就是UTF-8中用3个字节表示一个汉字,而普通的GB2312或BIG5是个,并且上述问题中为何只有IE才会出现问题呢,原因是IE把UTF-8当作两个字节解析时出现半个汉字的情况,导致IE无法正常完整的传递关键字,因此最简单的解决办法是:

1、在网页文件的<head></head>标签中一定要把字符定义

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

放在<title></title>之前。

2、修改  Plus\search\index.asp 文件

找到 Sub SearchMenu()  函数,将其中的红色部分

<a href=""?stype="&stype&"&key="&key&

替换为

<a href=""?stype="&stype&"&key="&server.URLEncode(key)&

原因是在utf-8中通过URL参数传递汉字,特别是奇数个汉字时,需要加上server.URLEncode()

最后,如果你用的是非IE6浏览器,或者GBK版本,就不会出现这些问题,各取所需吧!

订阅

9个评论

  1. the black friday ads
    2011/11/20 22:33:08

    好喜欢啊 嘻嘻

  2. girls bedding quilts
    2011/09/20 12:39:47

    我用的是IE8

  3. bedspreads
    2011/09/20 10:16:22

    好爱思考啊!

  4. asics high
    2011/03/12 17:16:21

    这个不太懂呢

  5. sealango
    2010/11/21 18:02:15

    没具体尝试过,还理解不来,得遇到了试一下就知道了。

  6. NikeAirMax
    2010/09/10 13:07:48

    现在IE9都快出来了!

    nuodou 于 2010-9-10 13:12:38 回复

    恩,但IE6还有不少人没放弃,所以得搞一搞!

  7. 股票入门
    2010/08/23 22:25:58

    科讯。。。我用过一回,还是08年的时候,就放弃了。BUG太多 论坛没人帮忙 也找不到解决的方法

    nuodou 于 2010-8-26 9:33:38 回复

    现在还不错!论坛很热!更新速度也不错!

  8. 风吟
    2010/08/23 17:53:21

    遵照便准请使用utf8编码

  9. Firm
    2010/08/21 15:52:54

    这点还真的不知道

发表评论

您的昵称 *

您的邮箱 *

您的网站

无觅相关文章插件,快速提升流量