今天在写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
阅读(4638) | 评论(0) | 转发(0) |