紫影基地

 找回密码
 立即注册
查看: 138|回复: 0

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

[复制链接]
阅读字号:

2002

主题

2117

帖子

21万

积分

超级版主

Rank: 8Rank: 8

积分
210303
发表于 2024-4-21 17:20:19 | 显示全部楼层 |阅读模式

  1. 这篇文章主要介绍了ASP中实现的URLEncode、URLDecode自定义函数,和ASP自带的server.urlencode是不一样的哦,需要的朋友可以参考下
  2. 在做ajax中的post时,发现在服务器端取得数据时总是乱码,网上看了些解决方法也搞不定,我post过去时是xml形式,由于乱码服务器端xml也解析不了或出错。于是在post前先把它编码,到服务器端再解码,这样问题解决了,但是要是数据很大时估计会很影响速度。

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

  4. 下面是我找到的一个ASP中server.urlencode函数的解码函数

  5. 复制代码代码如下:

  6. Function URLDecode(enStr)
  7.   dim deStr,strSpecial
  8.   dim c,i,v
  9.     deStr=""
  10.     strSpecial="!""#$%&'()*+,.-_/:;< =>?@[/]^`{|}~%"
  11.     for i=1 to len(enStr)
  12.       c=Mid(enStr,i,1)
  13.       if c="%" then
  14.         v=eval("&h"+Mid(enStr,i+1,2))
  15.         if inStr(strSpecial,chr(v))>0 then
  16.           deStr=deStr&chr(v)
  17.           i=i+2
  18.         else
  19.           v=eval("&h"+ Mid(enStr,i+1,2) + Mid(enStr,i+4,2))
  20.           deStr=deStr & chr(v)
  21.           i=i+5
  22.         end if
  23.       else
  24.         if c="+" then
  25.           deStr=deStr&" "
  26.         else
  27.           deStr=deStr&c
  28.         end if
  29.       end if
  30.     next
  31.     URLDecode=deStr
  32. End function
  33. 再附一个编码函数,这个与server.urlencode不一样之处是:server.urlencode会将html或xml等标签,如
  34. 也会进行编码,而下面这个函数不会。我是用下面的进行编码,再解码,因为我用post时用xml的。
  35. 复制代码代码如下:

  36. private Function URLEncoding(vstrIn)
  37.     strReturn = ""
  38.     For i = 1 To Len(vstrIn)
  39.     ThisChr = Mid(vStrIn,i,1)
  40.     If Abs(Asc(ThisChr)) < &HFF Then
  41.     strReturn = strReturn & ThisChr
  42.     Else
  43.     innerCode = Asc(ThisChr)
  44.     If innerCode < 0 Then
  45.     innerCode = innerCode + &H10000
  46.     End If
  47.     Hight8 = (innerCode And &HFF00)/ &HFF
  48.     Low8 = innerCode And &HFF
  49.     strReturn = strReturn & "%" & Hex(Hight8) & "%" & Hex(Low8)
  50.     End If
  51.     Next
  52.     URLEncoding = strReturn
  53.   End Function
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|紫影基地

GMT+8, 2025-1-12 12:18 , Processed in 0.087065 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表