Chinaunix首页 | 论坛 | 博客
  • 博客访问: 162791
  • 博文数量: 21
  • 博客积分: 517
  • 博客等级: 下士
  • 技术积分: 358
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-23 23:42
文章分类

全部博文(21)

文章存档

2015年(2)

2012年(19)

我的朋友

分类: 系统运维

2012-05-25 16:46:26

今天在写ASP网页时发现,如果用户的浏览器用utf-8编码通过GET方式传递变量时,如果变量值中包含中文字符,则在ASP页面中通过Request("variablename")无法正确获取传递的变量值。通过查找资料和测试发现以下代码可以正确的处理这个问题:
 
'检查QueryString是否是UTF-8编码,如果是,则需要先将Session.CodePage设置成65001后才能获取正确的参数值
 Set o_regx = New Regexp
 o_regx.Pattern = "^(?:[\x00-\x7f]|[\xfc-\xff][\x80-\xbf]{5}|[\xf8-\xfb][\x80-\xbf]{4}|[\xf0-\xf7][\x80-\xbf]{3}|[\xe0-\xef][\x80-\xbf]{2}|[\xc0-\xdf][\x80-\xbf])+$"
 s=unescape(Request.ServerVariables("QUERY_STRING"))
 if o_regx.Test(s) then
  Session.CodePage = 65001
  Department=Request("department")
  Session.CodePage = 936
 else
  Department=Request("department")
 end if
阅读(4595) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~