|
主题:[原创]UTF-8版全文搜索功能key编码错误问题 [收藏主题] | 转到: |
2009:11:06 15:30,已经解决,现在下班了,回家后奉上!方法已经提供,在本帖的最后
不知大家发现没有,搜索页面 http://localhost/plus/search/
输入一个汉字来搜索,比如“人”,然后点搜索,会出现正常的搜索结果,但这时再点“文章”,链接是:http://localhost/plus/search/?stype=1&key=人&m=1
出来的搜索却是如下:
同样的,点击“商品”搜索,出来
总结:输入搜索关键字为一个汉字时,会出现传递key错误!不知大家有没有类似问题!继续关注
IE6下面不行,我的猜测是关键字转码出问题了! 已经上传sp4,大家看看 是不是在ie下存在这个问题?
http://cvc.yygftp.com/plus/search/
解决办法
为什么只有奇数个关键字才会出现这种问题呢?突然想到,以前仿搜索系统时,http://www.nuodou.com/s/ 出现不同编码的搜索引擎间传递关键字的编码问题,解决方法类似。也就是UTF-8中用3个字节表示一个汉字,而普通的GB2312或BIG5是两个,并且上述问题中为何只有IE才会出现问题呢,原因是IE把UTF-8当作两个字节解析时出现半个汉字的情况,导致IE无法正常完整的传递关键字,因此最简单的解决办法是
1、在网页文件的<head></head>标签中一定要把字符定义
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()
最后,如果你用的是GBK版本,就不会出现这些问题,各取所需吧!
|
|
支持(0) | 反对(0) 顶端 底部 |
支持(0) | 反对(0) 顶端 底部 |
支持(0) | 反对(0) 顶端 底部 |
支持(0) | 反对(0) 顶端 底部 |
以下是引用oopp77在2009-11-5 17:57:00的发言:
测试你输入的字以后确实会出现这样的情况, 我在朋友的电脑上全新下载 iis5 和 Kesion V6 sp4 utf-8 版本 测试,仍然出现 搜索奇数个关键词,切换模型搜索时会出现 刚输入的关键词的 最后一个字被替换成m=5(其中的数字是模型ID)
希望官方测试一下是不是存在这种情况,另外我也把下载全新安装的Kesion V6 sp4 utf-8 版本上传到 http://cvc.yygftp.com/
搜索页:http://cvc.yygftp.com/plus/search/
请测试,谢谢!! |
|
支持(0) | 反对(0) 顶端 底部 |
我自己的GBK版本没有出现你的问题,第一次搜索以后看了下连接地址已经出现了M=1 http://cvc.yygftp.com/plus/search/?stype=1&key=好好好好m=1&m=1
最后面的一个字已经被M=1代替了
我自己的{GBK}版没有这样的问题.
此主题相关图片如下:未命名.jpg |
|
支持(0) | 反对(0) 顶端 底部 |
支持(0) | 反对(0) 顶端 底部 |
支持(0) | 反对(0) 顶端 底部 |
支持(0) | 反对(0) 顶端 底部 |
支持(0) | 反对(0) 顶端 底部 |
<上一主题 | 下一主题 > |