zl程序教程

您现在的位置是:首页 >  移动开发

当前栏目

ASP读取Request.QueryString编码的函数代码

ASP编码代码 函数 读取 request querystring
2023-06-13 09:14:30 时间
1.支持参数纯汉字?a=深山老熊
2.支持参数gb2312Urlencode编码:?a=%C9%EE%C9%BD%C0%CF%D0%DC
3.支持参数UTF-8Urlencode编码:?a=%E6%B7%B1%E5%B1%B1%E8%80%81%E7%86%8A
复制代码代码如下:

<%@LANGUAGE="VBSCRIPT"CODEPAGE="65001"%>
<%
OptionExplicit
ConstYXCMS_CHARSET="UTF-8"
ConstYXCMS_CODEPAGE=65001
Response.CharSet="UTF-8"
Session.CodePage=65001
"测试URL
"?n1=深山老熊&n2=%C9%EE%C9%BD%C0%CF%D0%DC&n3=%E6%B7%B1%E5%B1%B1%E8%80%81%E7%86%8A
"深山老熊
"GBK:%C9%EE%C9%BD%C0%CF%D0%DC
"UTF-8:%E6%B7%B1%E5%B1%B1%E8%80%81%E7%86%8A
DimURI,key
SetURI=newCls_URI
"输出所有参数测试
ForEachkeyInURI.QueryString
Response.Write"<spanstyle="color:red">"&key&":</span>"&URI.Get(key)&"<hr/>"
Next
"取单个值
"URI.Get("名称")
"--------------------------------------------
"ASPUTF-8编码下通吃GBKUTF-8编码
"作者:深山老熊QQ:81090
"--------------------------------------------
ClassCls_URI
Privateo_item,o_regx
Privateurl_query
PrivateSubClass_Initialize
Seto_item=CreateObject("Scripting.Dictionary")
o_item.CompareMode=1
Seto_regx=NewRegexp
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])+$"
Session.CodePage=936
url_query=Request.ServerVariables("QUERY_STRING")
Session.CodePage=65001
"根据QUERY_STRING字符串,生成模拟QueryString值
Dimi,a,b,c,n,v
a=Split(url_query,"&"):c=UBound(a)
Fori=0Toc
b=Split(a(i),"=",2)
n=Trim(b(0)&"")
IfUBound(b)<1Then
v=""
Else
v=b(1)
IfInStr(v,"%")>0Thenv=URLDecode(v)
EndIf
Ifn<>""Then
o_item(n)=v
EndIf
Next
Seto_regx=Nothing
EndSub
PrivateSubClass_Terminate
Seto_item=Nothing
EndSub
"模拟Request.QueryString
PublicFunctionQueryString()
SetQueryString=o_item
EndFunction
"模拟Request.QueryString(n)
PublicFunction[GET](n)
Ifo_item.Exists(n)Then
[GET]=o_item.Item(n)
Else
[GET]=""
EndIf
EndFunction
"编码格式化
PrivateFunctionURLDecode(ByVals)
Dimsm,cs,r,o_regex
IfTrim(s&"")=""Then
URLDecode=s:ExitFunction
EndIf
s=unescape(s)
Ifo_regx.Test(s)Then
cs="UTF-8"
Else
cs="GBK"
EndIf
Setsm=CreateObject("Adodb.Stream")
Withsm
.Type=2
.Mode=3
.Open
.CharSet="ISO-8859-1"
.WriteTexts
.Position=0
.CharSet=cs
URLDecode=.ReadText(-1)
.Close
EndWith
Setsm=Nothing
EndFunction
EndClass
%>