当前位置: 首页 > news >正文

支持中文的URLDecode ASP函数

1、这一部分是不支持中文的UrlDecode转换函数

<%
Function URLDecode(sConvert)
Dim aSplit
Dim sOutput
Dim I
If IsNull(sConvert) Then
URLDecode = ""
Exit Function
End If
' convert all pluses to spaces
sOutput = REPLACE(sConvert, "+", " ")
' next convert %hexdigits to the character
aSplit = Split(sOutput, "%")
If IsArray(aSplit) Then
sOutput = aSplit(0)
For I = 0 to UBound(aSplit) - 1
sOutput = sOutput & _
Chr("&H" & Left(aSplit(i + 1), 2)) &_
Right(aSplit(i + 1), Len(aSplit(i + 1)) - 2)
Next
End If
URLDecode = sOutput
End Function
%>

2、这一部分是支持转换中文的Asp UrlDecode函数

<%
function URLDecode(strIn)
URLDecode = ""
Dim sl: sl = 1
Dim tl: tl = 1
Dim key: key = "%"
Dim kl: kl = Len(key)
sl = InStr(sl, strIn, key, 1)
Do While sl>0
If (tl=1 And sl<>1) Or tl<sl Then
URLDecode = URLDecode & Mid(strIn, tl, sl-tl)
End If
Dim hh, hi, hl
Dim a
Select Case UCase(Mid(strIn, sl+kl, 1))
Case "U":'Unicode URLEncode
a = Mid(strIn, sl+kl+1, 4)
URLDecode = URLDecode & ChrW("&H" & a)
sl = sl + 6
Case "E":'UTF-8 URLEncode
hh = Mid(strIn, sl+kl, 2)
a = Int("&H" & hh)'ascii码
If Abs(a)<128 Then
sl = sl + 3
URLDecode = URLDecode & Chr(a)
Else
hi = Mid(strIn, sl+3+kl, 2)
hl = Mid(strIn, sl+6+kl, 2)
a = ("&H" & hh And &H0F) * 2 ^12 Or ("&H" & hi And &H3F) * 2 ^ 6 Or ("&H" & hl And &H3F)
If a<0 Then a = a + 65536
URLDecode = URLDecode & ChrW(a)
sl = sl + 9
End If
Case Else:'Asc URLEncode
hh = Mid(strIn, sl+kl, 2)'高位
a = Int("&H" & hh)'ascii码
If Abs(a)<128 Then
sl = sl + 3
Else
hi = Mid(strIn, sl+3+kl, 2)'低位
a = Int("&H" & hh & hi)'非ascii码
sl = sl + 6
End If
URLDecode = URLDecode & Chr(a)
End Select
tl = sl
sl = InStr(sl, strIn, key, 1)
Loop
URLDecode = URLDecode & Mid(strIn, tl)
End function
%>

 

 

相关文章:

  • IIS应用程序池w3wp.exe CPU 占用100% 分析软件,找出具体有问题的ASP程序URL
  • Ubuntu开启ssh服务
  • mysql in和exists性能比较和使用
  • 诸葛亮写给后代的一封信,只有86个字
  • Mysql复制表结构、表数据
  • mysql中如何设置默认时间为当前时间
  • linux zip 压缩命令 解压命令 unzip
  • 通用CSS Hack
  • 解决w3wp.exe内存占用问题
  • ASP.NET读取ASP设置的Cookie
  • Asp操作Cookies(设置[赋值]、读取、删除[设置过期时间])
  • 判断客户浏览器是否支持cookie
  • ASP.NET 操作Cookie详解 增加,修改,删除
  • ‍w3wp.exe占用内存过高的问题
  • w3wp.exe 频繁重启 Faulting application w3wp.exe
  • Android Studio:GIT提交项目到远程仓库
  • Android优雅地处理按钮重复点击
  • exports和module.exports
  • Fundebug计费标准解释:事件数是如何定义的?
  • JavaScript 无符号位移运算符 三个大于号 的使用方法
  • JavaScript创建对象的四种方式
  • k个最大的数及变种小结
  • Laravel Telescope:优雅的应用调试工具
  • Linux中的硬链接与软链接
  • Otto开发初探——微服务依赖管理新利器
  • Python 反序列化安全问题(二)
  • webpack4 一点通
  • 对JS继承的一点思考
  • 关于字符编码你应该知道的事情
  • 思维导图—你不知道的JavaScript中卷
  • 一文看透浏览器架构
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • 主流的CSS水平和垂直居中技术大全
  • FaaS 的简单实践
  • 如何通过报表单元格右键控制报表跳转到不同链接地址 ...
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • #14vue3生成表单并跳转到外部地址的方式
  • #Lua:Lua调用C++生成的DLL库
  • #QT(一种朴素的计算器实现方法)
  • $(selector).each()和$.each()的区别
  • $.type 怎么精确判断对象类型的 --(源码学习2)
  • (c语言)strcpy函数用法
  • (NO.00004)iOS实现打砖块游戏(九):游戏中小球与反弹棒的碰撞
  • (Python第六天)文件处理
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (一)为什么要选择C++
  • (转)socket Aio demo
  • (转)Sublime Text3配置Lua运行环境
  • *** 2003
  • .equals()到底是什么意思?
  • .Net中间语言BeforeFieldInit
  • ?
  • [].shift.call( arguments ) 和 [].slice.call( arguments )
  • [BZOJ2208][Jsoi2010]连通数
  • [CareerCup] 13.1 Print Last K Lines 打印最后K行