337人参与 • 2024-05-19 • Asp
用asp开发的时候遇到一个解码问题。虽然在asp中使用request获取编码过url字符串会自动解码,但是request.binaryread(request.totalbytes)取得post数据时却不会解码,所以只能手动进行解码。
asp解码函数:
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
只是个人爱好,自己研究了一下编码的实现思路,最后自己写了一个编码函数,提供大家参考。注:asp有内置的编码函数,即是server.urlencode。
asp编码函数:
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 内置的函数。虽然上面这个编码函数测试过n 遍了,没有发现问题,但是以防万一存在bug。
以上就是关于asp编码和解码函数,希望对大家的学习有所帮助。
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论