# ASP编码问题

<%
Function DeCode(EnStr)
For I = 1 To Len(EnStr)
C = Mid(EnStr,I,1)
If C = "%" Then
V = Eval("&H" & Mid(EnStr,I+1,2))
If V < 128 Then
DeCode = DeCode & Chr(V)
I = I+2
Else
If Isvalidhex(Mid(EnStr,I,3)) Then
If Isvalidhex(Mid(EnStr,I+3,3)) Then
V = Eval("&H" & Mid(EnStr,I+1,2) & Mid(EnStr,I+4,2))
DeCode = DeCode & Chr(V)
I = I+5
Else
V = Eval("&H" & Mid(EnStr,I+1,2) & Cstr(Hex(Asc(Mid(EnStr,I+3,1)))))
DeCode = DeCode & Chr(V)
I = I+3
End If
Else
DeCode = DeCode & C
End If
End If
Else
If C = "+" Then
DeCode = DeCode & " "
Else
DeCode = DeCode & C
End If
End If
Next
End Function
Function Isvalidhex(Str)
Isvalidhex = True
Str = Ucase(Str)
If Len(Str)<>3 Then Isvalidhex = False:Exit Function
If Left(Str,1)<>"%" Then Isvalidhex = False:Exit Function
C = Mid(Str,2,1)
If Not (((C>="0") And (C<="9")) Or ((C>="A") And (C<="Z"))) Then Isvalidhex = False:Exit Function
C = Mid(Str,3,1)
If Not (((C>="0") And (C<="9")) Or ((C>="A") And (C<="Z"))) Then Isvalidhex = False:Exit Function
End Function
%>
posted @ 2007-07-02 12:26  Microbar  阅读(329)  评论(0编辑  收藏