加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 站长学院 > Asp教程 > 正文

ASP里实现的URLEncode、URLDecode自定义函数

发布时间:2023-05-12 14:09:59 所属栏目:Asp教程 来源:
导读:这篇文章主要介绍了ASP中实现的URLEncode、URLDecode自定义函数,和ASP自带的server.urlencode是不一样的哦,需要的朋友可以参考下

在做ajax中的post时,发现在服务器端取得数据时总是乱码,网上看了些解决方法也搞
这篇文章主要介绍了ASP中实现的URLEncode、URLDecode自定义函数,和ASP自带的server.urlencode是不一样的哦,需要的朋友可以参考下
 
在做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
 
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章