Cet article présente principalement les fonctions personnalisées URLEncode et URLDecode implémentées dans ASP, qui sont différentes du server.urlencode fourni avec ASP. Les amis dans le besoin peuvent s'y référer.
Lors de la rédaction d'un message en Ajax, j'ai constaté que les données étaient toujours tronquées lors de leur extraction du serveur. J'ai regardé certaines solutions sur Internet et je n'ai pas pu comprendre. Mon message était au format XML à cause de cela. code tronqué, le fichier XML côté serveur n'a pas pu être analysé ou a généré une erreur. Nous l'encodons donc avant de le publier, puis le décodons côté serveur. Cela résout le problème, mais si les données sont volumineuses, cela affectera probablement la vitesse.
Bien que la requête dans ASP décode automatiquement la chaîne codée en URL, Request.BinaryRead(Request.TotalBytes) ne la décodera pas lors de l'obtention des données de publication, elle doit donc être décodée.
Voici la fonction de décodage de la fonction server.urlencode dans ASP que j'ai trouvée
Copiez le code comme suit :
Fonction URLDecode(enStr)
dim deStr,strSpécial
faible c,i,v
deStr=""
strSpecial="!""#$%&'()*+,.-_/:;< =>?@[/]^`{|}~%"
pour i=1 à len(enStr)
c=Mid(enStr,i,1)
si c="%" alors
v=eval("&h"+Mid(enStr,i+1,2))
si inStr(strSpecial,chr(v))>0 alors
deStr=deStr&chr(v)
je = je + 2
autre
v=eval("&h"+ Mid(enStr,i+1,2) + Mid(enStr,i+4,2))
deStr=deStr & chr(v)
je = je + 5
finir si
autre
si c="+" alors
deStr=deStr&" "
autre
deStr=deStr&c
finir si
finir si
suivant
URLDecode=deStr
Fin de fonction
Ci-joint une autre fonction d'encodage. La différence entre ceci et server.urlencode est que server.urlencode convertira les balises telles que HTML ou XML, telles que
L'encodage sera également effectué, mais pas la fonction ci-dessous. J'utilise ce qui suit pour encoder puis décoder, car j'utilise XML lors de l'utilisation de Post.
Copiez le code comme suit :
fonction privée URLEncoding (vstrIn)
strRetour = ""
Pour i = 1 À Len(vstrIn)
ThisChr = Milieu(vStrIn,i,1)
Si Abs(Asc(ThisChr)) < &HFF Alors
strReturn = strReturn & ThisChr
Autre
codeintérieur = Asc(ThisChr)
Si innerCode < 0 Alors
CodeInner = CodeInner + &H10000
Fin si
Hauteur8 = (code intérieur et &HFF00)/ &HFF
Low8 = innerCode et &HFF
strReturn = strReturn & "%" & Hex(Hight8) & "%" & Hex(Low8)
Fin si
Suivant
URLEncoding = strReturn
Fonction de fin