In diesem Artikel werden hauptsächlich die in ASP implementierten benutzerdefinierten Funktionen URLEncode und URLDecode vorgestellt, die sich von dem mit ASP gelieferten server.urlencode unterscheiden. Freunde in Not können darauf verweisen.
Als ich einen Beitrag in Ajax verfasste, stellte ich fest, dass die vom Server erhaltenen Daten immer verstümmelt waren. Ich habe mir einige Lösungen im Internet angesehen und konnte sie aufgrund der verstümmelten Daten nicht herausfinden , konnte die serverseitige XML-Datei nicht geparst werden oder es ist ein Fehler aufgetreten. Daher kodieren wir es vor dem Posten und dekodieren es dann auf dem Server. Dies löst das Problem, aber wenn die Datenmenge groß ist, wird es wahrscheinlich die Geschwindigkeit beeinträchtigen.
Obwohl die Anforderung in ASP die URL-codierte Zeichenfolge automatisch dekodiert, wird sie von Request.BinaryRead(Request.TotalBytes) beim Abrufen der Beitragsdaten nicht dekodiert, sodass sie dekodiert werden muss.
Das Folgende ist die Dekodierungsfunktion der server.urlencode-Funktion in ASP, die ich gefunden habe
Kopieren Sie den Codecode wie folgt:
Funktion URLDecode(enStr)
dim deStr,strSpecial
dim c,i,v
deStr=""
strSpecial="!""#$%&'()*+,.-_/:;< =>?@[/]^`{|}~%"
für i=1 bis len(enStr)
c=Mid(enStr,i,1)
wenn c="%" dann
v=eval("&h"+Mid(enStr,i+1,2))
wenn inStr(strSpecial,chr(v))>0 dann
deStr=deStr&chr(v)
i=i+2
anders
v=eval("&h"+ Mid(enStr,i+1,2) + Mid(enStr,i+4,2))
deStr=deStr & chr(v)
i=i+5
Ende wenn
anders
wenn c="+" dann
deStr=deStr&" "
anders
deStr=deStr&c
Ende wenn
Ende wenn
nächste
URLDecode=deStr
Funktion beenden
Im Anhang befindet sich eine weitere Codierungsfunktion. Der Unterschied zu server.urlencode besteht darin, dass server.urlencode Tags wie HTML oder XML konvertiert
Es wird auch eine Kodierung durchgeführt, die folgende Funktion jedoch nicht. Ich verwende Folgendes zum Kodieren und anschließenden Dekodieren, da ich bei der Verwendung von Post XML verwende.
Kopieren Sie den Codecode wie folgt:
private Funktion URLEncoding(vstrIn)
strReturn = ""
Für i = 1 Zu Len(vstrIn)
ThisChr = Mid(vStrIn,i,1)
Wenn Abs(Asc(ThisChr)) < &HFF Dann
strReturn = strReturn & ThisChr
Anders
innerCode = Asc(ThisChr)
Wenn innerCode < 0, dann
innerCode = innerCode + &H10000
Ende wenn
Hight8 = (innerCode And &HFF00)/ &HFF
Low8 = innerCode und &HFF
strReturn = strReturn & „%“ & Hex(Hight8) & „%“ & Hex(Low8)
Ende wenn
Nächste
URLEncoding = strReturn
Funktion beenden