作家
登录

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

作者: 来源:www.28hudong.com 2013-03-30 08:14:05 阅读 我要评论

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 %>

  推荐阅读

  ASP 下载时重命名已上传文件的新下载文件名的实现代码

问题:我想上传文件时后改名,下载时又将名改回来。 如:我上传一张“我的照片.jpg”上传后改为系统数名“20040302001.jpg”下载时又改回“我的照片.jpg” 其中的保存新旧文件名都用数据库(已做) 就是下载时的改>>>详细阅读


本文标题:ASP读取Request.QueryString编码的函数代码

地址:http://www.17bianji.com/kaifa2/ASP/31790.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)