加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 站长学院 > Asp教程 > 正文

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

发布时间:2023-06-21 13:45:32 所属栏目:Asp教程 来源:
导读:ASP读取Request.QueryString编码的函数代码,学习asp的朋友可以参考下。

1. 支持参数纯汉字 ?a=深山老熊

2. 支持参数gb2312 Urlencode编码: ?a=%C9%EE%C9%BD%C0%CF%D0%DC

3. 支持参数UTF-8 Urlencode编码
ASP读取Request.QueryString编码的函数代码,学习asp的朋友可以参考下。

1. 支持参数纯汉字 ?a=深山老熊
 
2. 支持参数gb2312 Urlencode编码: ?a=%C9%EE%C9%BD%C0%CF%D0%DC
 
3. 支持参数UTF-8 Urlencode编码: ?a=%E6%B7%B1%E5%B1%B1%E8%80%81%E7%86%8A
 
复制代码代码如下:
 
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
 
<%
 
Option Explicit
 
Const YXCMS_CHARSET = "UTF-8"
 
Const YXCMS_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
 
Dim URI,key
 
Set URI = new Cls_URI
 
'输出所有参数测试
 
For Each key In URI.QueryString
 
Response.Write "<span style='color:red'>" & key & " : </span>" & URI.Get(key) & "<hr/>"
 
Next
 
'取单个值
 
'URI.Get("名称")
 
'--------------------------------------------
 
'ASP UTF-8编码下通吃 GBK UTF-8编码
 
'作者: 深山老熊 QQ:81090
 
'--------------------------------------------
 
Class Cls_URI
 
Private o_item,o_regx
 
Private url_query
 
Private Sub Class_Initialize
 
Set o_item = CreateObject("Scripting.Dictionary")
 
o_item.CompareMode = 1
 
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])+$"
 
Session.CodePage = 936
 
url_query = Request.ServerVariables("QUERY_STRING")
 
Session.CodePage = 65001
 
'根据QUERY_STRING字符串,生成模拟QueryString值
 
Dim i,a,b,c,n,v
 
a = Split(url_query,"&") : c = UBound(a)
 
For i = 0 To c
 
b = Split(a(i),"=",2)
 
n = Trim(b(0) & "")
 
If UBound(b) < 1 Then
 
v = ""
 
Else
 
v = b(1)
 
If InStr(v,"%") > 0 Then v = URLDecode(v)
 
End If
 
If n <> "" Then
 
o_item(n) = v
 
End If
 
Next
 
Set o_regx = Nothing
 
End Sub
 
Private Sub Class_Terminate
 
Set o_item = Nothing
 
End Sub
 
'模拟 Request.QueryString
 
Public Function QueryString()
 
Set QueryString = o_item
 
End Function
 
'模拟 Request.QueryString(n)
 
Public Function [GET](n)
 
If o_item.Exists(n) Then
 
[GET] = o_item.Item(n)
 
Else
 
[GET] = ""
 
End If
 
End Function
 
'编码格式化
 
Private Function URLDecode(ByVal s)
 
Dim sm,cs,r,o_regex
 
If Trim(s & "") = "" Then
 
URLDecode = s : Exit Function
 
End If
 
s = unescape(s)
 
If o_regx.Test(s) Then
 
cs = "UTF-8"
 
Else
 
cs = "GBK"
 
End If
 
Set sm = CreateObject("Adodb.Stream")
 
With sm
 
.Type = 2
 
.Mode = 3
 
.Open
 
.CharSet = "ISO-8859-1"
 
.WriteText s
 
.Position = 0
 
.CharSet = cs
 
URLDecode = .ReadText(-1)
 
.Close
 
End With
 
Set sm = Nothing
 
End Function
 
End Class
 
%>
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章