找到一个转换的。。
但有些转换出来的字符是不认识的,有些可以转换正常。。
以下是原代码。。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> URLDecode </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>
<BODY>
URLDecoder<br />
<TEXTAREA NAME="txtCode" ROWS="5" COLS="80"></TEXTAREA><br />
<INPUT TYPE="submit" onclick="vbscript:txtText.value=URLDecode(txtCode.value)"><br />
<TEXTAREA NAME="txtText" ROWS="5" COLS="80"></TEXTAREA>
<SCRIPT LANGUAGE="VBScript">
<!--
Public Function LShift(ByVal lValue, ByVal iShiftBits)
LShift = lValue * (2 ^ iShiftBits)
End Function
Public Function RShift(ByVal lValue, ByVal iShiftBits)
RShift = lValue \ (2 ^ iShiftBits)
End Function
Function Hex2Dec(ByVal sHex)
sHex=UCase(sHex)
For i=1 To Len(sHex)
byChar=Asc(Mid(sHex,i,1))
If byChar>57 Then
byChar=byChar-65+10
Else
byChar=byChar-48
End If
lReturn=lReturn+byChar*16^(Len(sHex)-i)
Next
Hex2Dec=lReturn
End Function
'%B1%F1%C8%FD
Function URLDecode(ByVal sHex)
Dim sText
Dim i
Dim lChar,byChar,byChar2,lUniCount
Dim sByte
sHex = UCase(Replace(sHex, vbCrLf, ""))
If Left(sHex,1)="%" Then sHex=Right(sHex,Len(sHex)-1)
sByte = Split(sHex, "%")
For i = 0 To UBound(sByte)
byChar = Hex2Dec(sByte(i))
If byChar>128 Then
lUniCount=lUniCount+1
If lUniCount Mod 2 = 0 Then
lChar=LShift(byChar2, 8) Or byChar
sText = sText & Chr(lChar)
End If
byChar2=byChar
Else
sText = sText & Chr(byChar)
End If
Next
URLDecode=sText
End Function
//-->
</SCRIPT>
</BODY>
</HTML> |