ASP中实现的URLEncode、URLDecode自定义函数
在做ajax中的post时,发现在服务器端取得数据时总是乱码,网上看了些解决方法也搞不定,我post过去时是XMl形式,由于乱码服务器端xML也解析不了或出错。于是在Post前先把它编码,到服务器端再解码,这样问题解决了,但是要是数据很大时估计会很影响速度。
虽然ASP中的request会自动解码经过url编码的字符串,但是Request.BinaryRead(Request.totalBytes)取得@R_126_937@时却不会解码,所以要进行解码。
下面是我找到的一个ASP中server.urlencode函数的解码函数
复制代码 代码如下:
Function URLDecode(enStr)
dim deStr,strSPEcial
dim c,i,v
deStr=""
strSpecial="!""#$%&
'()*+,.-_/:;
=>
?@[/]^`{
|}
~%"
for i=1 to len(enStr)
c=Mid(enStr,i,1)
if c="%" then
v=eval("&
h"+Mid(enStr,i+1,2))
if inStr(strSpecial,chr(v))>
0 then
deStr=deStr&
chr(v)
i=i+2
else
v=eval("&
h"+ Mid(enStr,i+1,2) + Mid(enStr,i+4,2))
deStr=deStr &
chr(v)
i=i+5
end if
else
if c="+" then
deStr=deStr&
" "
else
deStr=deStr&
c
end if
end if
next
URLDecode=deStr
End function
再附一个编码函数,这个与server.urlencode不一样之处是:server.urlencode会将html或xml等标签,如
也会进行编码,而下面这个函数不会。我是用下面的进行编码,再解码,因为我用post时用xml的。
复制代码 代码如下:
PRivate Function URLEncoding(vstrIn)
strReturn = ""
For i = 1 To Len(vstrIn)
ThisChr = Mid(vStrIn,i,1)
If Abs(Asc(ThisChr)) &
HFF Then
strReturn = strReturn &
ThisChr
Else
innerCode = Asc(ThisChr)
If innerCode 0 Then
innerCode = innerCode + &
h10000
End If
Hight8 = (innerCode And &
HFF00)/ &
HFF
Low8 = innerCode And &
HFF
strReturn = strReturn &
"%" &
Hex(Hight8) &
"%" &
Hex(Low8)
End If
Next
URLEncoding = strReturn
End Function
- ASP 时间函数及如何获取服务器时间的写法
- Asp Split函数之使用多个分割符的方法
- asp与js的类型转换函数介绍
- asp中的Rnd 函数
- ASP转换格林威治时间函数DateDiff()应用
- ASP移动文件函数movefile权限不足的替代方法
- asp实现获取MSSQL数据库表指定条件行数的函数
- asp中实现清除html的函数
- asp实现截取字符串函数
- ASP实现强制图片下载函数
- ASP函数大全解析
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: ASP中实现的URLEncode、URLDecode自定义函数
本文地址: https://pptw.com/jishu/604254.html
