ASP url编码 与URL反编码函数

<%
response.write urldecode("http://www.111cn.net/")
'================================================
'函数名:URLDecode
'作 用:URL解码
'================================================
Function URLDecode(ByVal urlcode)
Dim start,final,length,char,i,butf8,pass
Dim leftstr,rightstr,finalstr
Dim b0,b1,bx,blength,position,u,utf8
On Error Resume Next

b0 = Array(192,224,240,248,252,254)
urlcode = Replace(urlcode,"+"," ")
pass = 0
utf8 = -1

length = Len(urlcode) : start = InStr(urlcode,"%") : final = InStrRev(urlcode,"%")
If start = 0 Or length < 3 Then URLDecode = urlcode : Exit Function
leftstr = Left(urlcode,start - 1) : rightstr = Right(urlcode,length - 2 - final)

For i = start To final
char = Mid(urlcode,i,1)
If char = "%" Then
bx = URLDecode_Hex(Mid(urlcode,i + 1,2))
If bx > 31 And bx < 128 Then
i = i + 2
finalstr = finalstr & ChrW(bx)
ElseIf bx > 127 Then
i = i + 2
If utf8 < 0 Then
butf8 = 1 : blength = -1 : b1 = bx
For position = 4 To 0 Step -1
If b1 >= b0(position) And b1 < b0(position + 1) Then
blength = position
Exit For
End If
Next
If blength > -1 Then
For position = 0 To blength
b1 = URLDecode_Hex(Mid(urlcode,i + position * 3 + 2,2))
If b1 < 128 Or b1 > 191 Then butf8 = 0 : Exit For
Next
Else
butf8 = 0
End If
If butf8 = 1 And blength = 0 Then butf8 = -2
If butf8 > -1 And utf8 = -2 Then i = start - 1 : finalstr = "" : pass = 1
utf8 = butf8
End If
If pass = 0 Then
If utf8 = 1 Then
b1 = bx : u = 0 : blength = -1
For position = 4 To 0 Step -1
If b1 >= b0(position) And b1 < b0(position + 1) Then
blength = position
b1 = (b1 xOr b0(position)) * 64 ^ (position + 1)
Exit For
End If
Next
If blength > -1 Then
For position = 0 To blength
bx = URLDecode_Hex(Mid(urlcode,i + 2,2)) : i = i + 3
If bx < 128 Or bx > 191 Then u = 0 : Exit For
u = u + (bx And 63) * 64 ^ (blength - position)
Next
If u > 0 Then finalstr = finalstr & ChrW(b1 + u)
End If
Else
b1 = bx * &h100 : u = 0
bx = URLDecode_Hex(Mid(urlcode,i + 2,2))
If bx > 0 Then
u = b1 + bx
i = i + 3
Else
If Left(urlcode,1) = "%" Then
u = b1 + Asc(Mid(urlcode,i + 3,1))
i = i + 2
Else
u = b1 + Asc(Mid(urlcode,i + 1,1))
i = i + 1
End If
End If
finalstr = finalstr & Chr(u)
End If
Else
pass = 0
End If
End If
Else
finalstr = finalstr & char
End If
Next
URLDecode = leftstr & finalstr & rightstr
End Function

Function URLDecode_Hex(ByVal h)
On Error Resume Next
h = "&h" & Trim(h) : URLDecode_Hex = -1
If Len(h) <> 4 Then Exit Function
If isNumeric(h) Then URLDecode_Hex = cInt(h)
End Function
%>

时间: 2024-09-28 23:21:53

ASP url编码 与URL反编码函数的相关文章

ASP.NET中的HTML编码和URL编码

asp.net|编码 导 读:Server.HTMLEncode 和 Server.URLEncode 是ASP中很常用的函数,在ASP.NET中也有类似的函数:HtmlEncode 和 UrlEncode (注意大小写)以下用实例来进行介绍. Server.HTMLEncode and Server.URLEncode are very common functions used by ASP developers. Well, as you may have guessed, these t

URL原理、URL编码、URL特殊字符

From: http://blog.csdn.net/chenlycly/article/details/51820727 From: http://blog.csdn.net/zmx729618/article/details/51381655 From: http://www.cnblogs.com/coco1s/p/5038412.html 通常如果一样东西需要编码,说明这样东西并不适合传输.原因多种多样,如Size过大,包含隐私数据,对于Url来说,之所以要进行编码,是因为Url中有些字

utf-8编码技巧 url编码问题_应用技巧

在用utf-8编码的页面中,通过ASP内置对象Server.URLEncode()编码后的URL不能正确的找到文件,解决方法是用JavaScript的escape()函数进行编码 编码比较程序 Asp版  复制代码 代码如下: <%@LANGUAGE="JAVASCRIPT" CODEPAGE="65001"%>  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN&

ASP取得地址URL中的顶级域名的函数

ASP取得地址栏中URL网址中的顶级域名函数,非正则,非常实用,亲自调试好用. 在制作一个DLL组件中,由于DLL里不方便调用正则函数,所以,制作了一个不需要正则的取得跟域名的函数,贡献给大家! 以下内容为程序代码Private Function durl(url) Dim domext, s1, s2, re, matches, arrdom, dd domext = "comnetorgcnlaccinfohkbizmemobinametvasiakrdeorg.cnco.krcom.cnn

asp 获取字符串中url地址函数

asp教程 获取字符串中url地址函数 本文章提供了三款利用asp的正则获取字符串中url地址自定义函数哦,三个方法的实现原理都是获取以http开的url地址哦. on error goto z dim url,key,wwwname url=request.servervariables("server_name") if instr(url,".")>0 then key=split(url,".") wwwname=key(0) ww

url 编码 js url传参中文乱码解决方案_javascript技巧

1.配置文件web.config中 在节中加上整个网站的编码方式. <globalization fileEncoding="GB2312" requestEncoding="GB2312" responseEncoding="GB2312"/> 这样参数就以gb2312的中文编码方式传输了.而一般默认是utf-8. 2.在传参是先编码在传输,接受时先编码,在接收. string mm=Server.URLEncode(你); Res

ASP UTF-8编码生成静态网页的函数_应用技巧

以下函数采用FSO对象,文件位置在FSO.ASP.FSO对象的文件编码属性只有三种,系统默认,Unicode,ASCII,并没有我们要的utf-8,所以一般中文系统上使用FSO对象生成的文件都是gb2312网页编码格式,无法生成UTF-8编码,因此,英文等拉丁语系和中文可以正常显示,但象俄语等非拉丁语系,页面就会出现乱码. 复制代码 代码如下: function createfile(sfilename,scontent) set fso=server.CreateObject("scripti

ASP UTF-8编码生成静态网页的函数

以下函数采用FSO对象,文件位置在FSO.ASP.FSO对象的文件编码属性只有三种,系统默认,Unicode,ASCII,并没有我们要的utf-8,所以一般中文系统上使用FSO对象生成的文件都是gb2312网页编码格式,无法生成UTF-8编码,因此,英文等拉丁语系和中文可以正常显示,但象俄语等非拉丁语系,页面就会出现乱码. 复制代码 代码如下: function createfile(sfilename,scontent) set fso=server.CreateObject("scripti

在ASP.NET中实现Url Rewriting

asp.net 概要 分析如何使用微软提供的ASP.NET来对动态产生的URL地址进行网址重写. 网址重写是实现一种截取网址请求并将其进行处理后重新指向到一个指定的网址的过程.作者本人在对各种实现网址重写的技术进行研究和探讨后得出的经验和方法,希望能对您有所帮助. 内容简介 稍微花点时间看一看你做的网站里头的URL地址,你看到类似这样的地址吗http://yoursite.com/info/dispEmployeeInfo.aspx?EmpID=459-099&type=summary ?也许你

在ASP.NET中重写URL的代码_实用技巧

经常有人请我指导应该如何动态地"重写"URL,以在他们的ASP.NETweb应用中发布比较干净的URL端点.这个博客帖子概述了几个方法,你可以用来在ASP.NET中干净地映射或重写URL,以及按照你自己的需求组织你的URL的结构.  为什么URL映射和重写很重要? 下面是开发人员想要对URL有更大的灵活性的最常见的场景:  1) 处理这样的情形:你要更改你的web应用中网页的结构,但你同时也要确保在你移动网页后,那些被人收藏的老URL不会成为死链接.重写URL允许你透明地将请求转交到新