网站首页  汉语字词  英语词汇  考试资料  写作素材  旧版资料

请输入您要查询的范文:

 

标题 ASP中实现的URLEncode、URLDecode自定义函数
范文
    在做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
随便看

 

在线学习网范文大全提供好词好句、学习总结、工作总结、演讲稿等写作素材及范文模板,是学习及工作的有利工具。

 

Copyright © 2002-2024 cuapp.net All Rights Reserved
更新时间:2025/5/13 12:02:03