Im Augenblick:
Wenn es Leerzeichen gibt, verwenden Sie stattdessen %20, wenn es andere Zeichen gibt, verwenden Sie stattdessen %ASCII. Wenn es vier Byte -Zeichen wie chinesische Zeichen gibt, verwenden Sie stattdessen zwei %ASCII. Manchmal müssen wir jedoch auch die auf diese Weise codierten Zeichenfolgen dekodieren, aber ASP liefert keine relevanten Funktionen, was uns beim Umgang mit dem Problem einige Probleme bringt. Solange wir die Codierungsregeln kennen, können wir ASP -Code verwenden, um unsere eigene Urldecode -Funktion zu implementieren.
Die spezifische Implementierung ist wie folgt:
Die Codekopie lautet wie folgt:
FunctionUrldeCode (CODESTR)
newsstr = ""
havechar = false
lastchar = ""
fei = 1tolen (codestern)
char_c = mid (codestern, i, 1)
ifchar_c = "+" dann
Newsstr = Newstr & ""
elseifchar_c = "%" dann
Next_1_c = Mid (CODESTR, I+1,2)
next_1_num = cint ("& h" & next_1_c)
ifhavecharthen
havechar = false
newsstr = newstr & chr (cint ("& h" & lastchar & next_1_c))
anders
ifabs (next_1_num) <= 127Then
newsstr = newstr & chr (next_1_num)
anders
havechar = true
lastchar = next_1_c
Endif
Endif
i = i+2
anders
Newsstr = Newstr & char_c
Endif
nächste
URLDECODE = Newstr
Endfunktion
Hier ist eine reifere Funktion für Sie:
Die Codekopie lautet wie folgt:
"=========================================================================================================
'Funktionsname: Urldecode
'Funktion: URL -Dekodierung
"=========================================================================================================
Funktion Urldecode (Byval Urlcode)
Dim Start, Final, Länge, Char, I, Butf8, Pass
Dim Leftstr, Rightstr, Finalstr
Dim B0, B1, Bx, Blength, Position, U, Utf8
Bei der nächsten Fehleraufnahme als nächstes
B0 = Array (192.224.240,248.252.254)
urlcode = ersetzen (urlcode, "+", "")
Pass = 0
UTF8 = -1
Länge = len (urlcode): start = instr (urlcode, "%"): Final = Instrrev (UrlCode, "%")
Wenn start = 0 oder Länge <3, dann UrldeCode = UrlCode: Ausgangsfunktion
linkSstr = links (UrlCode, Start - 1): rechts = rechts (UrlCode, Länge - 2 - endgültig)
Für i = beginnen in das endgültige
char = mid (urlcode, i, 1)
Wenn char = "%" dann
BX = URLDECODE_HEX (MID (urlcode, i + 1,2))
Wenn BX> 31 und BX <128 dann
i = i + 2
Finalstr = Finalstr & Chrw (BX)
Elseif bx> 127 dann
i = i + 2
Wenn utf8 <0 dann
Butf8 = 1: Blength = -1: B1 = Bx
Für Position = 4 bis 0 Schritt -1
Wenn B1> = B0 (Position) und B1 <b0 (Position + 1) dann dann
Blenge = Position
Beenden für
Ende wenn
Nächste
Wenn Blength> -1 dann
Für Position = 0 bis Blength
B1 = UrldeCode_hex (Mid (UrlCode, I + Position * 3 + 2,2))
Wenn B1 <128 oder B1> 191 dann Butf8 = 0: Beenden Sie für
Nächste
Anders
Butf8 = 0
Ende wenn
Wenn Butf8 = 1 und Blength = 0 dann Butf8 = -2
Wenn Butf8> -1 und UTF8 = -2 dann i = start -1: finalstr = "": pass = 1