首页 >> 网页技术 > asp技术 >> 详细内容
网页技术
 
asp技术 >> 正文
UTF-8版ASP程序传递奇数个汉字时编码错误
日期:2017-06-15 

今天用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程序不会出现这种问题。