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
复制代码代码如下:
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
%>
相关文章
- ASP.Net MVC开发基础学习笔记:一、走向MVC模式
- ASP官网_什么是ASP.NET?它有什么优势
- ASP编程操作MySQL数据库(asp访问mysql)
- ASP空间与MSSQL相结合,完美解决网站数据库存储与运行问题(asp空间mssql)
- ASP操作Oracle数据库(asp链接oracle)
- 如何使用C ASP实现MySQL数据库连接(c asp连接mysql)
- ASP连接MySQL实现优雅的数据查询(asp连接查询mysql)
- 使用ASP连接MySQL数据库,轻松实现功能扩展(asp连mysql数据库)
- ASP驱动MySQL简单快捷高效(asp调用mysql)
- ASP与MySQL的结合创造巨大可能性(asp结合mysql)
- ASP如何使用代码登录MySQL数据库(asp登陆mysql代码)
- ASP连接MySQL从初学者到专家(asp引用mysql)
- ASP技术点缀MySQL之美展示精彩绚丽(asp展示mysql)
- 优雅的结合ASP与MySQL的SQL语句(asp和mysql语句)
- ASP与MySQL的联合开发实现轻松跨平台互联网应用(asp和mysql)
- 建立企业级应用ASP系统与Oracle技术配合的良好实践(asp系统oracle)
- ASP程序使用Oracle数据库实现智能化管理(asp 操作oracle)
- ASP控制下的Oracle数据库管理初体验(asp控制oracle)
- 用ASP设计购物推车
- ASP动态生成的javascript表单验证代码
- [ASP.NETAJAX]Function对象及Type类的方法介绍
- ASP生成UTF-8编码的代码
- ASP、PHP与javascript根据时段自动切换CSS皮肤的代码
- ASP隐藏真实文件的下载功能实现代码
- asp.netgridview中用checkbox全选的几种实现的区别
- asp实现的冒泡排序程序
- ASP.NET跨页面传值方法
- asp经典入门教程在ASP中使用SQL语句
- Asp.net中时间格式化的6种方法详细总结
- Asp.Net超大文件上传问题解决
- asp中通过fso读取和生成UTF-8编码的txt
- asp.net获取select值的方法
- asp.net传多个值到其它页面的具体实现