ASP中实现的URLEncode、URLDecode自定义函数
来源: 阅读:2904 次 日期:2014-08-05 18:06:20
温馨提示: 小编为您整理了“ASP中实现的URLEncode、URLDecode自定义函数”,方便广大网友查阅!

这篇文章主要介绍了ASP缓存技术详解,本文详细介绍了ASP缓存技术、ASP缓存的分类、ASP缓存的实现方法和使用方法等,需要的朋友可以参考下

在做ajax中的post时,发现在服务器端取得数据时总是乱码,网上看了些解决方法也搞不定,我post过去时是xml形式,由于乱码服务器端xml也解析不了或出错。于是在post前先把它编码,到服务器端再解码,这样问题解决了,但是要是数据很大时估计会很影响速度。

虽然ASP中的request会自动解码经过url编码的字符串,但是Request.BinaryRead(Request.TotalBytes)取得post数据时却不会解码,所以要进行解码。

下面是我找到的一个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

更多信息请查看IT技术专栏

更多信息请查看网络编程
由于各方面情况的不断调整与变化, 提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!
关于我们 | 联系我们 | 人才招聘 | 网站声明 | 网站帮助 | 非正式的简要咨询 | 简要咨询须知 | 加入群交流 | 手机站点 | 投诉建议
工业和信息化部备案号:滇ICP备2023014141号-1 云南省教育厅备案号:云教ICP备0901021 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:
咨询QQ:526150442(9:00—18:00)版权所有:
云南网警报警专用图标
Baidu
map