UTF-8版ASP程序传递奇数个汉字时编码错误
今天用IE测试一个utf-8的系统的搜索功能时,发现一个编码的问题,很有趣,还好以前碰到过类似的问题,今天顺利解决。
事件:当输入奇数个关键词,并切换搜索栏目时,通过IE传递过去的关键词的最后一个汉字会消失,这是典型的编码问题!UTF-8中用3个字节表示一个汉字,而普通的GB2312或BIG5是两个,并且只有IE浏览器才会出现把UTF-8当作两个字节解析,导致IE无法正常完整的传递关键字,因此解决办法不难。
1、在网页文件的<head></head>标签中一定要把字符定义
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
放在<title></title>之前。
2、将通过URL参数传递的汉字,特别是奇数个汉字,加上server.URLEncode()
比如:<a href="?&key="&server.URLEncode(key)&
声明一下:GBK程序不会出现这种问题。
以前做诺豆搜索 http://yangjunwei.com/s/ 时,就出现了在不同编码的浏览器间传递汉字时的编码解决问题,那是首次碰到,弄个JS转换编码的文件就花了好多天!
把每一个页面的编码都加上,是个很好的方法。
呵呵,我也遇到多次了, 每一次都要整半天才能搞定。
对你们这种代码牛人,我只有佩服的份了
博主是自己编写的源码还是什么程序呀
我也来晚了,把小板凳放在地板上自己站在小板凳上看你的文章了!!!!
都是找在线JS转换
我的博客也出现过类似问题,不过还是很喜欢zblog的
来晚了 ~ 做地板上看
你都研究到这个份了上了啊
UTF真的会有许多问题,最主要的是乱码
呵呵,好久没来了,内容挺充实的嘛!
utf-8是国际通用编码,用的时候当然要细心一点,不然出现乱码是很正常的事情。