主页 > 知识库 > ASP中实现的URLEncode、URLDecode自定义函数

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

热门标签:科大讯飞语音识别系统 Mysql连接数设置 团购网站 Linux服务器 银行业务 服务器配置 阿里云 电子围栏

在做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=deStrchr(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=deStrc
        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函数大全解析

标签:萍乡 枣庄 广元 江苏 衡水 蚌埠 大理 衢州

巨人网络通讯声明:本文标题《ASP中实现的URLEncode、URLDecode自定义函数》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266